PHP中foreach详细分析—一般数组与对象数组

PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量,

也就是对值本身的拷贝,对其值进行改变并不会影响到数组本身。

如:

PHP中foreach详细分析—一般数组与对象数组
$arr = array(1, 2, 3);

foreach($aa as $el){
    $el =+ 100;
}
 
foreach($arr as $el){
    echo $el;
    echo "<br/>";
 }    // 结果:1 2 3
PHP中foreach详细分析—一般数组与对象数组

但是如果是对象数组的情形,也就是数组元素均为对象时,此时each后面的变量是对对象引用的拷贝,对其进行的改变会直接影响到原数组本身。这点与上面情形很容易弄混。

如:

PHP中foreach详细分析—一般数组与对象数组
$aa = new stdClass();
$aa->name = '张三';

$bb = new stdClass();
$bb->name =  '李四';

$arr = array($aa, $bb);

foreach($arr as $element){
    $element->name = 'qqyumidi';
}

foreach($arr as $el){
    echo $el->name;
    echo "<br/>";
}      // 结果:qqyumidi   qqyumidi
PHP中foreach详细分析—一般数组与对象数组

 

---------------------------------------------------------------------------------
笔者水平有限,若有错漏,欢迎指正,如果转载以及CV操作,请务必注明出处,谢谢!
分类: PHP

本文转自Windstep博客园博客,原文链接:http://www.cnblogs.com/lwbqqyumidi/archive/2012/08/22/2651381.html,如需转载请自行联系原作者
上一篇:信息 “裸奔”:2016 年网民人均被泄八条个人信息


下一篇:《金蝶ERP-K/3培训教程——财务/供应链/生产制造(第2版)》——6.3 系统设置