U-style PHP独学日記  Since2001 メインメニューに戻る PHPメニューに戻る
タイトル配列を使う2
文書管理番号 作成日 分類1 分類2 キーワード

PHP0020

2002-09-08 文法 配列 foreach、array

 ついになんだか訳わからないものがでてきました。まだまだ初心者のため、これはいったいどういうときに使うの?という代物です。それはforeachというものです。どうやら配列をリストアップするときには便利なようです。しかし実際ではどの場面で使うのだろう・・・テキストにも詳細は載っていないので、リストをそのまま動かします。

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html>
<body>
<?
$Menber["名前"] = "U-style";
$Menber["メールアドレス"] = "kenus@capella.freemail.ne.jp";
$Menber["住所"] = "日本国神奈川県";

foreach($Menber as $key => $value)
{
print($key . "は" . $value ."です<br>\n");
}
?>
</body>
</html>

実行結果

foreachの後の$keyや$valueが曲者です。これはもともと定義されているものなのでしょうか?早速テストです。それぞれ名前を変えてみます。

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html>
<body>
<?
$Menber["名前"] = "U-style";
$Menber["メールアドレス"] = "kenus@capella.freemail.ne.jp";
$Menber["住所"] = "日本国神奈川県";

print("test2<br>\n");
foreach($Menber as $akey1 => $avalue1)
{
print($akey1 . "は" . $avalue1 ."です<br>\n");
}
?>
</body>
</html>

実行結果
$keyを$akey1、$valueを$avalue1に変更して動かしましたら動きました。やっぱり任意で指定できるようです。これもやはり変数宣言をせずに変数が使えるPHPだからでしょうか?やっぱり変数は宣言してから使うほうが最終的にはわかりやすい気がするのは私だけでしょうか?

さてついでにもうひとつ進みます。先ほども出てきた=>という記号です。これはいったい何なのでしょうか?次のプログラムでは配列の添え字の一番最初のスタート番号として利用されています。デフォルトでは0から添え字が始まりますが、=>を使うと任意の数字からはじめられるようです。さっきの=>と意味はまったく違います。何者?=>は・・・

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html>
<body>
<?
$Number = array(1=> "one",
"two",
"three");
for($intNum = 0; $intNum < 5; $intNum++)
{
print("添え字 $intNum は" . $Number[$intNum] . "<br>\n");
}
?>
</body>
</html>

実行結果
本来ならば添え字0がoneで添え字1がtwoのはずです。しかしarray関数と=>で1がスタート番号となっているので添え字の0には何も入っていません。(しかし配列はつくられるのですね)そしておまけに指定していない添え字4も表示してみました。こちらも配列は作られていますが中身はなにもありませんNULLってやつでしょうか。どちらにしろPHPはずいぶん自由度が高い印象をうけました。


本日の参考文献
  • MySQL&PHPでつくるWebデータベース Spencer K Ogawa著 エーアイ出版