0

例如,这安全吗?

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

它似乎工作正常。这是否意味着 PHP 在开始循环之前制作了数组的副本?

4

2 回答 2

3

是的,foreach循环对原始数组的副本进行操作。更多关于内部行为的信息foreach可以在这个很棒的博客中找到。

于 2013-08-09T17:30:04.837 回答
0

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

于 2013-08-09T17:33:49.110 回答