PHP

【PHPの基礎】if文による条件分岐の使い方をマスターしよう!

今回解決できる内容!

✔️if文ってなに?

✔️if文はどのような書き方をするの?

✔️if文の活用方法

if文はシステムを開発していく中でかなり使用頻度の高い構文です。

構文自体は難しくありませんので、是非使い方をマスターしましょう❗️

独学がつらくなった方は下記をご覧ください!

>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!

【基礎編】if文とは

if文とは、条件分岐を行う際に使用する構文です。if文は、条件がtureの場合(正しい場合) に処理を実行します。

書き方は下記のようになります。

if ( 条件 ) {
 // 条件が一致したときに実行する処理
}

条件を()の中に記載し、条件が一致した場合のみ {} の中身を実行します

【基礎編】if文を使ってみよう

実際にif文を実行してみましょう。

<?php
$a=1;
$b=2;

if($a<$b){
echo 'こんにちは';
}
?>

結果は下記の通りです。

()内の条件がture(正しい)だった為、{} 内を実行した流れになります。

【基礎編】elseifの使い方

条件式を2つ以上用意するときは、2つ目以降は「elseif」に続けて条件を書きます。

全ての条件に当てはまらないものに関しては「else」で条件を書きます。

if (条件1) {
 // 条件1が一致したときに実行する処理
}elseif(条件2){
 // 条件2が一致したときに実行する処理
}else{
 //条件1,条件2に一致しなかった場合実行する処理
}

実際にelseif文を実行してみましょう。

<?php

$a=1;
$b=2;

if ($a == $b){
 echo '$aと$bは等しい';
}elseif ($a < $b){
 echo '$aより$bのほうが大きい';
}else{
 echo '$bより$aのほうが大きい';
}

?>

実行結果は下記のようになります。

ここでは条件の部分で比較演算子を用いています。

比較演算子についてはこちらをご覧ください。

>>【PHPの基礎】演算子をマスターしよう!

【応用編】複雑な条件分岐を作ってみよう

先程は比較演算子を用いましたが、次は比較演算子と論理演算子を組み合わせた文を作ってみましょう!

<?php

$score=70;
if($score>=0 && $score<60){
 echo'赤点です';
}elseif($score>=60 && $score<70){
 echo'平均点です';
}elseif($score>=70 && $score<100){
 echo'高得点です';
}elseif($score===100){
 echo'満点です!';
}else{
 echo'値を入力して下さい';
}

?>

実行結果は下記の通りになります。

条件文は0<=$score<60のように、変数を真ん中にして一気にまとめることは出来ないので注意してください。

if文の条件分岐で$socreの数値がどの範囲に当てはまるかを確認しています。

$socreが「70」である為、「$score>=70 && $score<100」の条件が当てはまります。

「$score>=70」は「70以上である」こと、「$score<100」は「100より少ない」ことを示しています。

「&&」は論理演算子であり、「左辺と右辺が両方当てはまる」ことを示しているので70が条件に当てはまることがわかります。

論理演算子については下記の記事を参考にして下さい

>>【PHPの基礎】演算子をマスターしよう!

【応用編】if文のネスト(入れ子)

ネスト(入れ子)とは、あるものの中に、それと同じ形や種類のものが入っている状態や構造のことです。

つまりif文のネストとは、if文の中にif文が入っている状態のことを指します。

実際のコードで確認してみましょう!

<?php

$a=100;
$b=200;

if ($a>50){
    if($b>100){
        echo'aは50より大きく、bは100より大きい';
    }else{
        echo'aは50より大きく、bは100より小さい';
    }
}else{
 echo'aは50より小さい';
}

?>

結果は下記の通りです。

if文のネストを行なっているので、「if文の中にif文がある」構造になっています。

まずは1つ目のif文(6行目)で「$aが50より大きい」かどうかを確認します。これがture(正しい)なので、次のif文に移ります。2つ目のif文(7行目)では、「$bが100より大きい」かどうかを確認します。これもture(正しい)ので「aは50より大きく、bは100より大きい」が結果に反映されます。

【応用編】if文に似たswitch文

switch文とはif文と同じように条件分岐を行う構文です。

switch文は指定した式の値に応じた処理を記述することで、条件分岐を簡潔に記述することができます

switch文の書き方は下記の通りです。

switch ( 式 )
{
case 値1
// 「式 = 値1」のときに実行される処理
break;

case 値2:
// 「式 = 値2」のときに実行される処理
break;
・
・
・

default:
// 式の値が上記のどれとも等しくない場合に実行される処理
break;
}

実際の例を確認してみましょう!

<?php

    $time = 12;
    switch ($time){
        case 9:
            echo "午前";
            break;
        case 12:
            echo "正午";
            break;
        case 13:
            echo "午後";
            break;

        default:
            echo "それ以外";
    }

?>

結果は下記の通りです。

switch()のカッコ内に判定したい変数や値を入れます。今回は「$time」を判定します。

case9とすると、「$time==9」の判定を行い、TRUEの場合は「:(コロン)」以降のプログラムを実行します。この時、switch文を抜けるbreak文を忘れずに記載します。

今回は「$time==9」がFALSEのため、次のcaseに移ります。

これを繰り返していき、判定がTRUEとなった「正午」が出力されます

>>【PHPの基礎】switch文(条件分岐を行う構文)をマスターしよう!

独学でツラくなった方へ

まとめ

今回説明した内容

✅if文とは

✅if文の活用方法

今回は以上になります。

基本構文はそこまで難しくないと思います。システムを開発する中で、このif文を組み合わせるやり方が本当にたくさん使われます。

自分でもいくつか文章を作って是非マスターしましょう!

また、PHPの条件分岐をまとめましたので是非参考にして下さい!

>>【PHPの基礎】PHPの条件分岐のまとめ!(if文|三項演算子|switch文)