一回も披露したことのない豆知識

例えば、次のような場合、
「echo "<br>";」よりも上と下は同じ結果になるのですが、
上の方が正しくて下の方は問題があると思っていました。
エラーが出なければ、実は問題が無いのでしょうか?
問題が無いとしたら、
外側と内側で同じ「$key」を使っても問題が無い理由が分かりません。
どなたか、教えてください。よろしくお願いします。

<?php
$name = array("A","B","C","D");
$list = array("a","b","c");
foreach ($name as $key1 => $val1) {
foreach ($list as $key2 => $val2) {
echo $list[$key2]."<br>";
}
}
echo "<br>";
foreach ($name as $key => $val) {
foreach ($list as $key => $val) {
echo $list[$key]."<br>";
}
}
exit;
?>
結果:
a
b
c
a
b
c
a
b
c
a
b
c

a
b
c
a
b
c
a
b
c
a
b
c

質問者からの補足コメント

A 回答 (1件)

下の書き方だと$nameのキーや値にアクセスしづらいのでNGです。

    • good
    • 0
この回答へのお礼

yambejpさん、ありがとうございました。
その通りですね。
実は、自分のプログラムの間違いに気づいたのはそういうことでした。
$nameの値はほとんどのケースで内側のforeachの前に使っていて最近まで気付きませんでした。
たまたま内側のforeachの中で使うケースが生じて、
$name[3]を使いたかったのに$name[2]が使われていて気付きました。
いままで問題なく動作していたのが奇跡で、
実は気づかないだけで問題があったのではないかと心配になって質問させていただきました。

お礼日時:2017/04/13 18:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!