PHPでイロイロやろうとしてつまずいている爺です。本当は、ひとつのことをやりたくて、それが、うまくいってないという…。DOMなっているんだ…いえ、ドウなっているんだ…などと、寒いダジャレを…作業対象に掛けたツモリ…。
昨日は、散歩以外ほとんど家にいて、PHPスクリプトを書こうとPCの前にいたです。
これは、実際に作業進捗がはかられた、ということを意味しません(キッパリ)。ええ、良い考えが浮かばない、とか書いてますが、要はスキルが足りんのであります…シクシク。
配列のキーの扱い方で、凡ミス
- $is 配列で値はarrayカッコの中で設定
- foreach $is配列の「配列内キー」として「$key」、$isは「配列内」有効な変数として$isの個々の値を受け取る
- foreachのソト、つまり終わったあとも、$iは最後の値「6」が残っている
- $isは、foreach内でつくった配列ではないので、[5]のように添え字を入れると、foreach外でも範囲内の添え字であれば、値を表示する。範囲外であれば「Undefined offset N」と表示してくれる
- unsetしたあとの $i は、「undefined variable i」と表示され、無効な変数であることがわかる
$key、最後の値が残るみたい
ちなみに、 $key もforeach外になっても、最後の値が残ってました。unset($key) すると、消滅…。
<?php $is = array(0,1,2,3,4,5,6); foreach($is as $key=>$i){ echo $i." i <br />"; echo $is[$key]." is <br />"; } echo "==========<br />"; echo $i." i-out of foreach <br />"; echo $is[5]." is-out of foreach:$is[5] <br />"; echo $is[7]." is-out of range,foreach <br />"; echo $key."<br />"; unset($i); echo $i." i-after-unset <br />"; unset($key); echo $key."<br />"; ?>