この記事では、PHP の foreach ループで参照を使用する際の分析と注意事項を紹介します。この記事が学生の皆様のお役に立てれば幸いです。
例
コードは次のとおりです |
コードをコピー |
$array=array('a','b','c','d');
foreach($array as $key=>$val){
//何かをする
}
echo $val;//出力 d
echo $kay;//出力 3
$val='e';
print_r($array);//出力配列 ( [0] => a [1] => b [2] => c [3] => d )
?>
|
foreach ループでは、ループが終了しても $key 変数と $val 変数は自動的に解放されません。値は保存されます。
foreachで参照を使用すると以下のような状況が発生するため注意が必要です。
コードは次のとおりです
コードをコピー |
|
$array=array('a','b','c','d');
foreach($array as $key=>&$val){//参照を使用します
//何かをする
}
echo $val;//出力 d
echo $kay;//出力 3
$val='e';
print_r($array);//出力配列 ( [0] => a [1] => b [2] => c [3] => e )
?>
$val 変数が & を使用して参照される場合、foreach ループが終了すると、$val は $arrar[3] と同じメモリ アドレスを指します。
$val 変数は foreach ループの終了後も存在するため、foreach ループの終了後に $val の値を変更することは、$arrar[3] の値を変更することと同じです。
http://www.bkjia.com/PHPjc/633197.html
www.bkjia.com
本当http://www.bkjia.com/PHPjc/633197.html技術記事この記事では、PHP の foreach ループで参照を使用する際の分析と注意事項を紹介します。この記事が学生の皆様のお役に立てれば幸いです。 コード例は次のとおりです。 コードをコピーします ?php $array=arra...