PHPの制御構文

if

if文とは条件分岐の制御構文であり、条件に合致した場合のみ実行する処理を記述することができる。PHPにおいてif文は次のように記述する。

if (条件1) {
  // 条件1が真のときに実行する処理
} else if (条件2) {
  // 条件2が真のときに実行する処理
} elseif (条件3) {
  // 条件3が真のときに実行する処理
} else {
  // 上記の条件がいずれも偽のときに実行する処理
}

if文は次のように記述することもできる。この場合、else if (条件):と記述できないので注意。

if (条件1):
  // 条件1が真のときに実行する処理
elseif (条件2):
  // 条件2が真のときに実行する処理
else:
  // 上記の条件がいずれも偽のときに実行する処理
endif;

for

for文とは反復の制御構文であり、繰り返し行う処理を記述することができる。PHPにおいてfor文は次のように記述する。

for (変数 = 初期値; 繰り返し条件; 増分)
{
  // 繰り返し処理
}

for文は次のように記述することもできる。

for (変数 = 初期値; 繰り返し条件; 増分):
  // 繰り返し処理
endfor;

HTMLテンプレート内でfor文を使用する例を示す。

<?php for ($i = 1; $i <= 9; $i++): ?>
  <input type="text">
<?php endfor ?>

foreach

foreachは、配列または連想配列に対して先頭から順に繰り返し処理を行う。

配列の場合

foreach (配列 as 値変数)
{
  // 繰り返し処理
}

連想配列の場合

foreach (連想配列 as キー変数 => 値変数)
{
  // 繰り返し処理
}

foreach文は次のように記述することもできる。

foreach (配列 as 値変数):
  // 繰り返し処理
endforeach;

配列がnullの場合、foreach文はエラーとなる。配列がnullの場合でもエラーとはせず、繰り返し処理を実行させないためには、配列にキャストすればよい。

foreach ((array)$array as $element)
{
  // 繰り返し処理
}

上記のサンプルコードでは、$arrayがnullの場合は、要素が0個の配列になるためエラーとはならない。また、配列の要素が0個のため繰り返し処理は1回も実行されない。

switch

switch文とは条件分岐の制御構文であり、条件に合致した場合のみ実行する処理を記述することができる。PHPにおいてswitch文は次のように記述する。

switch (評価式)
{
  case 値1:
      // 評価式の値が値1に一致する場合に実行する処理
      break;
  case 値2:
      // 評価式の値が値2に一致する場合に実行する処理
      break;
  default:
      // 評価式の値がいずれのcaseにも一致しなかった場合に実行する処理
      break;
}

switch文は次のように記述することもできる。

switch (評価式):
  case 値1:
      // 評価式の値が値1に一致する場合に実行する処理
      break;
  case 値2:
      // 評価式の値が値2に一致する場合に実行する処理
      break;
  default:
      // 評価式の値がいずれのcaseにも一致しなかった場合に実行する処理
      break;
endswitch;

while

while文とは反復の制御構文であり、繰り返し行う処理を記述することができる。PHPにおいてwhile文は次のように記述する。

while (条件)
{
  // 繰り返し処理
}

while文は次のように記述することもできる。

while (条件):
  // 繰り返し処理
endwhile;

do文と異なり、while文は反復処理の前に条件を検証する。したがって、繰り返し処理を1回も実行しないことがある。

do

do文とは反復の制御構文であり、繰り返し行う処理を記述することができる。PHPにおいてdo文は次のように記述する。

do
{
  // 繰り返し処理
}
while (条件)

while文と異なり、do文は反復処理の後に条件を検証する。したがって、最低1回は繰り返し処理を実行する。