たとえば、これは安全ですか?
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呼び出されたコピーで動作します。