例如,这样安全吗?
foreach($opps_data as $k=>$v) {
$opps_data[$k.'_mixed'] = WXU::MixedCase($v);
}
似乎工作正常。这是否意味着PHP在开始循环之前会复制数组?
答案 0 :(得分:3)
是的,foreach
循环对原始数组的副本进行操作。有关foreach
的内部行为的详细信息,请参阅this great blog。
答案 1 :(得分:0)
foreach()
使用迭代器。调用数组然后迭代器用于指向被调用的数组
在这种情况下,$opps_data
仅被调用一次。迭代器不会引用原始数组,它将处理被称为$opps_data
的副本。