PHP入門 – 条件分岐(if文、switch文)の書き方

PHP-条件分岐

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;
}