if,for,foreach… PHPの制御構文を予習復習

ここまでは実際のコード修正をしながらPHPの文法を解説してきました。
まだ紹介できなかった重要な事項が残っていますので、特に制御構文(制御構造)についてここで触れておきたいと思います。

foreach

配列やオブジェクトの中身を、繰り返して取り出す、PHPでは非常に重要な構文です。
データベースの中身を取り出したあとに繰り返し処理する場合などによく使います。

PHPマニュアル foreach

利用例は以下です。

<?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マニュアル if

利用例は以下です。

<?php
$param = 1;
if ($param == 1) {
  echo "値は1です";
} else if ($param == 2) {
  echo "値は2です";
} else {
  echo "値は1でも2でもありません";
} 
// 出力
// 値は1です

for

決められた回数の繰り返し処理に使います。

PHPマニュアル for

<?php
for ($i = 0; $i < 10; $i++) {
    echo $i;
} 
// 出力
// 0123456789

while

条件を満たすまで続く繰り返し処理に使います。

PHPマニュアル while

<?php
$i = 0;
while ($i < 10) {
    echo $i;
    $i++;
} 
// 出力
// 0123456789

switch

条件によって並列分岐する処理に使います。

PHPマニュアル while

<?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マニュアル break

<?php
$i = 0;
while ($i < 10) {
    echo $i;
    if ($i > 3) {
        break; // breakで中断
    }
    $i++;
} 
// 出力
// 0123

continue

繰り返し構文のはじめに戻る場合に使います。
for/foreach/while/switchで利用できます。

PHPマニュアル continue

<?php
$i = 0;
while ($i < 10) {
    if ($i > 3) {
        echo "0";
        continue; // continueではじめに戻る
    }
    echo "1"; // $iが4以上の場合はここまでこない
    $i++;
} 
// 出力
// 1110000000
このページをシェア Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn