PHPを独学中で、初歩的な質問になりますがご了承ください。
下記のコードの結果が異なる理由が知りたいです。
知恵をお貸しいただけると幸いです。宜しくお願いします。
foreachは配列を1周したらループが終了するという認識ですが、例2の場合はvar_dumpで確認すると、2周、例3の場合は3周されているようです。
<例2の結果>
3array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } 3array(4) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "3" }
該当のソースコード
例1)
$y = array('1','2');
foreach($y as $key); //←セミコロン
$y[] ='3';
echo $y[2];
//3
例2)
$y = array('1','2');
foreach($y as $key){ //←波カッコ
$y[] ='3';
echo $y[2];
}
//33→3が2個になる。var_dumpで結果を見てみると2周されているようです。
例3)
$y = array("1","2");
$y[] ="3"; //←配列を外に出した
foreach($y as $key){
echo $y[2];
}
//333→3が3個になる。var_dumpで結果を見てみると3周されているようです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/04 08:36
2019/07/04 08:44