PHP入門 – 条件分岐(if文、switch文)の書き方
PHPでif文、switch文を使用した条件分岐について解説します。
if文、switch文を用いることで条件に応じて処理を変えることができます。
if文
if文は、「()」内に条件式を書いて、条件が成り立つ場合「{}」内の処理が実行されます。if文の形式は「if(条件式) {処理内容}」とします。
if文の簡単な例を以下に示します。
//条件が成立する場合
$x = 10;
if($x > 5) {
echo '$xは5より大きい'; //処理が実行される
}
//条件が成立しない場合
$x = 10;
if($x > 20) {
echo '$xは20より大きい'; //処理が実行されない
}
比較演算子
条件式では、「>」のように左右の値を比較するための比較演算子を使用するので、それぞれの記号と意味を覚えておきましょう。
比較演算子 | 説明 |
---|---|
< | 左辺の方が小さい |
<= | 左辺の方が小さい or 等しい |
> | 左辺の方が大きい |
>= | 左辺の方が大きい or 等しい |
== | 両辺の値が等しい |
=== | 両辺の値と型が等しい |
!= | 両辺の値が等しくない |
!== | 両辺の値 or 型が等しくない |
else
ifと組み合わせて「else」を使うことで、条件が成立しなかった場合の処理も設定しておくことができます。形式は「if(条件式){処理内容}else{処理内容}」とします。
elseを用いた簡単な例を以下に示します。
$x = 10;
if($x > 20) {
echo '$xは20より大きい'; //実行されない
} else {
echo '$xは20未満; //実行される
}
//条件式が成立しないので、elseの中の処理が実行されます
elseif
ifと組み合わせて「elseif」と使うことで、条件式を複数書いて、多岐分岐させることができます。ただし、複数の条件に合致しても実行される処理は最初のブロック「{}」だけです。
elseifを用いた簡単な例を以下に示します。
$x = 10;
if($x > 20) {
echo '$xは20より大きい';
} elseif($x > 7) {
echo '$xは20未満で7より大きい'; //実行される
} else {
echo '$xは20未満'; //上に実行されたブロックがあるので実行されない
}
論理演算子
「&&」や「||」は論理演算子と呼ばれ、複数の条件を組み合わせることができます。
論理演算子の種類は以下の通りです。
論理演算子 | 説明 |
---|---|
&& | 左辺と右辺の両方がtrueのときtrue |
and | &&と同じ |
|| | 左辺と右辺の一方もしくは両方がtrueであればtrue |
or | ||と同じ |
! | 否定(条件式がtrueときfalse、falseのときtrue) |
論理演算子を使用した簡単な例を以下に示します。
$x = 10;
if($x > 5 && $x < 15) {
echo '$xは10より大きい、かつ15より小さい';
}
if($x < 5 || $x < 15) {
echo '$xは5より大きい、または15より小さい';
}
if(!($x == 20)) {
echo '$xは20ではない';
}
switch文
if, elseif文で等価演算子(「==」,「===」)を使用した条件分岐が多くなる場合はswitch文を使用した方が見やすくスッキリとさせることができます。
switch文の形式は以下の通りで、(式)とcaseの値が一致したとき、そのブロックが実行されます。どのcaseにも一致しなかった場合はdefaultのブロックが実行されます。breakはブロックが実行されたときにswitch文から脱出させる命令で、これがないと複数のブロックが実行される可能性があります。
switch(式) {
case 値1:
式が値1と等しいときの処理;
break;
case 値2:
式が値2と等しいときの処理;
break;
default:
式がどのcaseにも一致しなかったときの処理;
break;
}
switch文の簡単な例を以下に示します。
$num = 0;
switch($num) {
case 0:
echo 'ビッグ★ボーナス'; //実行される
break;
case 1:
echo 'プチ★ボーナス';
break;
default:
echo 'はずれ';
break;
}