zoukankan      html  css  js  c++  java
  • PHP foreach引用&

    将以下代码打印

    $variable = ['a', 'b', 'c'];
    
    foreach ($variable as $key => &$value) {
    
    }
    
    foreach ($variable as $key => $value) {
    
    }
    echo "<pre />";
    var_dump($variable);
    echo "<pre />";
    #结果
    array(3) {
      [0]=>
      string(1) "a"
      [1]=>
      string(1) "b"
      [2]=>
      &string(1) "b"
    }
    

    打印出来的结果跟预期结果的不一致,这是因为在第一次的foreach中使用了引用,顺其而然的$value变成了引用变量,因而$value与 $a[ 2 ]指向了同一个地址空间(共享变量值),在第二个foreach中,不断的将$arr中的值赋给$value,进而$arr[2]的值也会跟随者$value的变化而变化,将第二次中的$variable 打印出来的结果

    array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "a" }
    array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "b" }
    array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "b" } 
    

    $value值与$arr[2]值的变化

    image.png

  • 相关阅读:
    cf #363 c
    cf #363 b
    cf #363 a
    跑rbgirshick的fast-rcnn代码
    改文件夹名称
    cmake安装
    argparse模块
    which,whereis,locate,find
    FastRCNN 训练自己数据集 (1编译配置)
    视觉一般的面试问题
  • 原文地址:https://www.cnblogs.com/caiji/p/9293254.html
Copyright © 2011-2022 走看看