たとえば、これは安全ですか?
foreach($opps_data as $k=>$v) {
$opps_data[$k.'_mixed'] = WXU::MixedCase($v);
}
それはうまくいくようです。これは、PHP がループを開始する前に配列のコピーを作成するということですか?
たとえば、これは安全ですか?
foreach($opps_data as $k=>$v) {
$opps_data[$k.'_mixed'] = WXU::MixedCase($v);
}
それはうまくいくようです。これは、PHP がループを開始する前に配列のコピーを作成するということですか?
はい、foreach
ループは元の配列のコピーで動作します。の内部動作の詳細についてforeach
は、このすばらしいブログを参照してください。
foreach()
イテレータを使用します。配列が呼び出された後、呼び出された配列を指すためにイテレータが使用されます。
この場合$opps_data
、一度だけ呼び出されます。イテレータは元の配列を参照せず、$opps_data
呼び出されたコピーで動作します。