数组和对象分别在ForEach里面的变化

数组和对象分别在ForEach里面的变化

标题可能不太符合我的内容,因为我也不知道这里应该怎么命名!
《数组和对象分别在ForEach里面的变化》

经过

在项目中,操作(数据对象),一直都像数组一样,在一次项目中,意外的发现了一个数组和对象的不同!导致现在在处理数据的话会觉的对象比数组好处理!

实践

我创建了两个文件,以类似的形式去操作数组和对象,发现确实会不同!

<?php
$arr = array(1, 2, 3);
foreach($aa as $el){
    $el =+ 100;
}
foreach($arr as $el){
    echo $el;
    echo "<br/>";
 }    // 结果:1 2 3
<?php
$aa = new stdClass();
$aa->name = 'aaa';
$bb = new stdClass();
$bb->name =  'bbb';
$arr = array($aa, $bb);
foreach($arr as $element){
    $element->name = 'ccc';
}

foreach($arr as $el){
    echo $el->name;
    echo "<br/>";
}   // 结果:ccc ccc

结论

如果是数组,在遍历的时候$v 会讲数组的元素或者子元素进行复制一份,而对象会直接在内存里面进行指向对象的子属性!

点赞
  1. 张晔璇说道:

    [威武] [威武] [威武] [威武] [威武] [威武] [威武] [威武] [威武] [威武]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据