PHP一般数组与对象数组

导语:PHP中的foreach作为经常用到的函数,常常用来遍历数组,那么PHP一般数组与对象数组有什么不同呢?让我们了解一下吧!

PHP一般数组与对象数组

对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的'每份元素的值拷贝到each后面的变量,

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

如:

$arr = array(1, 2, 3);

foreach($aa as $el){

$el =+ 100;

}

foreach($arr as $el){

echo $el;

echo "<br/>";

} // 结果:1 2 3

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

如:

$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