HOME -> プログラム -> PHP Script -> PHP 条件式

PHP 条件式

if 分岐式
 分岐式はCの構文に非常によく似ています。
<?php
$a = 1;
if($a > 5){
	echo("Over 5 ");
}else{
	echo("Under 5");
}
?>
 馬鹿馬鹿しいコードかもしれませんが、一応解説を・・・ if の式が判定されて { } 内が処理されます。 else で続ければ if 式が偽(この場合は 5 以下)の時の処理がなされます。 ここでは変数 $a は必ず 1 が代入されているので
Under 5
 が必ず表示されるはずです。
 単純な2分岐ならそれでいいですが、3分岐などになったらどうしますか? その時は3っつ連ねるだけですよー
<?php
$a = 1;
if($a > 5){
	echo("Over 5 ");
}elseif($a < 2){
	echo("Over 2 ");
}else{
	echo("etc..");
}
?>
 という具合に elseif で分岐を増やせば問題ありません。或は if の中に if を入れ子(ネスト)にして分岐させるのも良いでしょう。 そこらへんは個々人のコーディングの好みによりますかね。
switch 分岐式
 先ほどは if で分岐をしましたが、2つ3っつの時はそれでも良いとして、分岐が5とか10とかになったらどうしましょうか・・・ elseif をそれだけ書いていくのは非常に面倒ですよね。 コードの可読性も悪化してしまいます。
 では switch で処理をしてみましょう。
<?php
$a = 5;
switch($a){
	case 0:
		echo("value is 0");
		break;
	case 1:
		echo("value is 1");
		break;
	case 2:
		echo("value is 2");
		break;
	case 3:
		echo("value is 3");
		break;
	case 4:
		echo("value is 4");
		break;
	default:
		echo("value is etc");
		break;
}
?>
 上記は switch で分岐を行わせた例です。 switch直後の()内の変数を評価します。 結果は case のラベル毎に分岐します。
ここの例では数値を判定していますが、これは文字列でも問題なく評価ができます。
<?php
$a = 5;
switch($a){
	case 0:
	case 1:
	case 2:
	case 3:
		echo("value is Under 3");
		break;
	case 4:
		echo("value is 4");
		break;
	default:
		echo("value is etc");
		break;
}
?>
 このような書き方の場合、$a が 0,1,2,3 の場合は全て同じ処理を行います。 なんとなく判りますよね。 break で構文を抜け出します。 default ラベルは、どのcase条件にも合致しなかった場合に処理される部分になります。
?を使った分岐
 if と switch の2つで分岐式は十二分です。
 基本は YES か NO かですから。 ですがちょっと違う書き方を覚えると、これから先ちょっと楽が出来るかもしれません。 という事で if の違った書き方です。
<?
$a = 10;
5 > $a ? $str = "ok" : $str = "no";
echo($str);
?>
 ここで画面に表示されるのは no です。 試しに $a に代入する値を 4 にしてみましょう。
 今度は ok が表示されるはずです。 ? の前の部分が条件です。
 そして ? から : までが条件が真の場合処理される部分、: から ; までが偽の場合に処理される部分になります。
なんの事は無い、if else 構文を一行にまとめただけの事です。 ですが文章的には飛躍的にコンパクトになったかと思います。


2008年 9月 28日ドキュメント作成
2008年 9月 28日ドキュメント更新