ここまでは実際のコード修正をしながらPHPの文法を解説してきました。
まだ紹介できなかった重要な事項が残っていますので、特に制御構文(制御構造)についてここで触れておきたいと思います。
foreach
配列やオブジェクトの中身を、繰り返して取り出す、PHPでは非常に重要な構文です。
データベースの中身を取り出したあとに繰り返し処理する場合などによく使います。
利用例は以下です。
<?php $fruits = $array( "apple" => array( "name" => "りんご", "color" => "red", ), "banana" => array( "name" => "バナナ", "color" => "yellow", ), "lemon" => array( "name" => "レモン", "color" => "yellow", ), ); foreach ($fruits as $key => $val) { echo "キー{$key}の中身について、名前は{$val["name"]}、色は{$val["color"]}です。
"; } // 出力 // キーappleの中身について、名前はりんご、色はredです。 // キーbananaの中身について、名前はバナナ、色はyellowです。 // キーlemonの中身について、名前はレモン、色はyellowです。
上記を実行すると、二次元配列の中身が繰り返し取り出されます。
こういった、繰り返して一定の処理をすることは、『再帰』『再帰的な処理』『再帰構文』と呼ばれます。
if
ある条件によって処理を分ける場合に使います。
利用例は以下です。
<?php $param = 1; if ($param == 1) { echo "値は1です"; } else if ($param == 2) { echo "値は2です"; } else { echo "値は1でも2でもありません"; } // 出力 // 値は1です
for
決められた回数の繰り返し処理に使います。
<?php for ($i = 0; $i < 10; $i++) { echo $i; } // 出力 // 0123456789
while
条件を満たすまで続く繰り返し処理に使います。
<?php $i = 0; while ($i < 10) { echo $i; $i++; } // 出力 // 0123456789
switch
条件によって並列分岐する処理に使います。
<?php $i = 1; switch ($i) { case 0: echo "iは0に等しい"; break; case 1: echo "iは1に等しい"; break; case 2: echo "iは2に等しい"; break; default: echo "いずれにも該当しません"; break; } // 出力 // iは1に等しい
break
繰り返し構文を中断する場合に使います。
for/foreach/while/switchで利用できます。
<?php $i = 0; while ($i < 10) { echo $i; if ($i > 3) { break; // breakで中断 } $i++; } // 出力 // 0123
continue
繰り返し構文のはじめに戻る場合に使います。
for/foreach/while/switchで利用できます。
<?php $i = 0; while ($i < 10) { if ($i > 3) { echo "0"; continue; // continueではじめに戻る } echo "1"; // $iが4以上の場合はここまでこない $i++; } // 出力 // 1110000000