PHPの条件式(if文)
更新日 : 2018年06月05日
今回はPHPの条件式です。プログラミングカテゴリーで記事にした比較演算子や論理演算子を使用して、条件ごとに処理を分けることができます。
条件式の書式(if文)
PHPの条件式の書式は一般的な書き方に沿っています。
以下がその書式です。
if(比較演算子や論理演算子などの式) {
()内の式がTRUEとなるときにこの部分が実行
}
丸括弧の中に比較演算子や論理演算子の組み合わせを書きます。要は丸括弧の中の結果がトータルでTRUEまたはFALSEになるように書いていきます。
そして丸括弧ないの条件を精査して、TRUEだった場合に中括弧{}の中の処理が実行されます。
逆にFALSEだった場合には処理は行われません。
他にも条件式の書式がありますが、コード例を見てみましょう。
コード例
実際にPHPのコードで条件式の書式をいくつか見てみます。
<?php
$x = 10;
// 単純な条件式
if($x === 10) {
echo "10ですよ!";
echo "<br>";
}
// elseを使用して条件に当てはまらなかった場合の処理を記述
if($x === 6) {
echo "6ですよ!";
} else {
echo "6ではありません!";
}
echo "<br>";
// else ifを利用して当てはまらなかった場合の別の条件式を記述
if($x === 0) {
echo "xは0です!";
} else if($x % 2 === 0) {
echo "xは偶数です!";
} else {
echo "xは奇数です!";
}
?>
別の書式が2つほどありますがそれほど変わりはありません。
else
を使用すると、if
やelse if
の条件に当てはまらなかった場合の処理を記述することができます。どの条件にも当てはまらなかった場合に使用する構文なので条件式の最後に使用します。
else if
は、最初のif
の条件に当てはまらなかった場合にelse if
の条件で再度精査され、その条件に当てはまれば、else if
内の処理が実行されます。
以下がコードの実行結果です。
else if
に関しては1つの条件式の中に複数書くこともできます。
極端な例ですが、以下のコードをご覧ください。
<?php
$x = 5;
// else ifを利用して当てはまらなかった場合の別の条件式を記述
if($x === 0) {
echo "xは0です!";
} else if($x % 2 === 0) {
echo "xは偶数です!";
} else if($x % 3 === 0) {
echo "xは3で割り切れます!";
} else if($x % 4 === 0) {
echo "xは4で割り切れます!";
} else {
echo "xは0ではなく、偶数でもなく3でも4でも割り切れない数です!";
}
?>
このように記述することも可能です。こちらのコードの実行結果は以下です。
条件式の注意点
直前のコードでは複数の条件式を組み合わせて実行しました。$x
が5の際には最後のelse
の処理が実行されました。
では少し編集した以下のコードの結果を予想してみてください。
<?php
$x = 0;
if($x % 2 === 0) {
echo "xは偶数です!";
} else if($x === 0) {
echo "xは0です!";
} else {
echo "xは0ではなく、偶数でもない数です!";
}
?>
最初に$x
を0としてスタートします。2番目の条件echo "xは0です!"
が実行されるのが理想的な処理の流れですが、これを実行すると以下のようになります。
最初のif
の条件が実行されてしまいます。もちろん0は偶数でもあるので問題はありませんが(笑)
このように条件式は上から順番に精査されます。そのため条件式を複数書く際には細かい条件を先に精査させるように書きましょう。
特別な条件式(三項演算子)
最後にちょっと特殊な条件式を見てみます。
三項演算子という条件を短縮して書くことのできる方法です。以下にコードを記載します。
<?php
$x = 0;
/*
if($x === 0) {
echo "xは0です!<br>";
} else {
echo "xは0ではありません!<br>";
}
*/
echo ($x === 0) ? "xは0です!<br>" : "xは0ではありません!<br>";
/*
if($x !== 0) {
$string = "xは0以外です!";
} else {
$string = "xは0です!";
}
*/
$string = ($x !== 0) ? "xは0以外です!" : "xは0です!";
echo $string;
?>
書式は条件式 ? TRUEのときの値 : FALSEの時の値
となります。
1つ目の処理では値を直接echo
で実行させて、2つ目では値を$string
に代入しています。
これらの処理はコメントアウトに記述したものと同様の動作をします。
以下が実行結果になります。
このようにコードをぐっと減らすことができるので単純な条件式などの際にはおすすめです。
まとめ
今回はPHPの条件式について書きました。PHPの条件式は一般的なプログラミングの条件式の書式に沿っているので、こちらの書き方に慣れておけば他の言語でも同様に条件式を記述できることが多いです。
三項演算子まで行いましたが、if
文をメインに利用していくことになると思うので、そこまではしっかり理解しておきましょう。
タグ
-
前の記事
PHPの結合演算子
-
次の記事
PHPの条件式(switch文)