迭代时向数组中添加新键是否安全?

时间:2013-08-09 17:28:35

标签: php

例如,这样安全吗?

foreach($opps_data as $k=>$v) {
    $opps_data[$k.'_mixed'] = WXU::MixedCase($v);
}

似乎工作正常。这是否意味着PHP在开始循环之前会复制数组?

2 个答案:

答案 0 :(得分:3)

是的,foreach循环对原始数组的副本进行操作。有关foreach的内部行为的详细信息,请参阅this great blog

答案 1 :(得分:0)

foreach()使用迭代器。调用数组然后迭代器用于指向被调用的数组 在这种情况下,$opps_data仅被调用一次。迭代器不会引用原始数组,它将处理被称为$opps_data的副本。