複数の条件分岐(if..elseif..else)

広告

ここまでは1つの条件式で真か偽かを判別していましたが、複数の条件式を組み合わせることも可能です。次の書式を使用します。

if (条件式1){
  条件式1が真の時に実行する処理1
  条件式1が真の時に実行する処理2
}elseif (条件式2){
  条件式2が真の時に実行する処理1
  条件式2が真の時に実行する処理2
}elseif (条件式3){
  条件式3が真の時に実行する処理1
  条件式3が真の時に実行する処理2
}else{
  全ての条件式が偽の時に実行する処理
}

この構文ではまず条件式1が評価されます。真だった場合にはすぐ下のブロック内の処理を実行して終了です。もし偽だった場合には条件式2を評価します。そして条件式2が真だった場合にはその下にあるブロック内の処理を行い、偽だった場合には次の条件式の評価を行います。最終的に全ての条件式が偽だった場合にelseの後に書かれたブロック内の処理を行います。

elseifは任意の数だけ記述することができます。注意点としては上の条件式から順に評価が行われ、条件式が真だった場合はその下の条件式の評価は行われないことです。

なおelseの部分は必要無ければ記述しなくても構いません。

実際には次のように記述します。

$domain = 'jp';

if ($domain == 'in'){
  print 'インドのトップレベルドメイン';
}elseif ($domain == 'cn'){
  print '中国のトップレベルドメイン';
}elseif ($domain == 'jp'){
  print '日本のトップレベルドメイン';
}else{
  print '不明です';
}

サンプルプログラム

では簡単なプログラムで試して見ます。

sample6-1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>PHPテスト</title>
</head>
<body>

<p>PHPのテストです。</p>

<p>
<?php
$domain = 'jp';

print 'ドメイン:'.$domain.'<br />';
if ($domain == 'in'){
  print 'インドのトップレベルドメイン';
}elseif ($domain == 'cn'){
  print '中国のトップレベルドメイン';
}elseif ($domain == 'jp'){
  print '日本のトップレベルドメイン';
}else{
  print '不明です';
}
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

複数の条件分岐(if..elseif..else)

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)