【PHP入門】if文で条件分岐をしてみよう!

投稿日: 作成:   更新:

PHPのif 文について解説します。

この記事は次の内容をプログラミング初心者の方向けに書きました。

  • if文の基本的な書き方
  • if文の処理フローのイメージについて

プログラミングはソースコードを書くだけではなく、処理フロー図のイメージができると「どう動かしたいか」を明確にできます。

まずは「if文とは」の部分だけ理解いただければと思います。

それでは行きましょう!

if文とは

if文は条件によって処理を分けて行うときに使用します。
if文の条件には比較演算子(==、!= など)、論理演算子(&&、|| など)を使用して分岐させます。

if文の処理フロー図

if文の処理イメージをフロー図を使って描いてみます。

if文のソースコードで頭が混乱したときは、こちらの処理フロー図に表してからソースコードを書くことでスッキリとしたコードを書くことができます。(手書きでOKです)

どうですか?
処理のイメージはできましたか?

後ほど「if – elseif – else で書いてみる」のところで、この処理フロー図を実際のソースコードに書いてみます。

if – else で書いてみる

まず始めに if – else のソースコードを記載してみます。
変数の値が同じか判定するときは「==」演算子を使用します。

<?php 

$val = "バナナ";

if ($val == "バナナ") {
    echo "バナナを発見!";

} else {
    echo "バナナは見つからなかった・・";
}

?>

実行結果:

このソースコードでは、if で「バナナ」かどうかを判定して、値が同じなため「バナナを発見!」を出力しています。(始めに変数に「バナナ」を格納しているので当然ですが・・・)

if – elseif – else で書いてみる

次にif – elseif – elseのソースコードを書いてみます。
こちらは「if文とは」に書きました処理フロー図をソースコードで表したものになります。

<?php 

$val = "イチゴ";

if ($val == "バナナ") {
    echo "バナナを発見!";

} else if ($val == "イチゴ") {
    echo "イチゴを発見!";

} else {
    echo "果物は見つからなかった・・・";
}

?>

実行結果:

if 文で「バナナ」かどうかを判定して、値が異なるため次の else if で「イチゴ」と判定されたため「イチゴを発見!」を出力しています。

if文の入れ子

if 文の中にさらにif 文を書くことができます。
このことを「if文の入れ子」と言います。

次のソースコードでは、燃料「90」が入っている変数に対して、どのくらい燃料が入っているのか燃料メーターに表示します。

<?php

// 燃料が90入っている
$fuel = 90;

// 燃料メーターの表示
if ($fuel > 50) {
    if ($fuel == 100) {
        echo "満タン";
    } else {
        echo "50 ~ 99の間";
    }
} else {
    echo "50未満";
}

?>

実行結果:

「if ($fuel > 50)」に一致して、「else if ($fuel == 100)」に一致しなかったので11行目の文字「50 ~ 99の間」を画面に出力します。

三項演算子を使ってみる

1つの条件で1つの変数へセットする場合、三項演算子を使用するとスッキリとしたソースコードが書けます。

<?php

// 都道府県コードを指定
$prefCode = 13;

// 都道府県名をセット
if ($prefCode == 13) {
    $prefName = "東京";

} else {
    $prefName = "";
}

echo $prefName;
?>
<?php

// 都道府県コードを指定
$prefCode = 13;

// 都道府県名をセット(三項演算子で条件判定)
$prefName = ($prefCode == 13) ? "東京" : "";

echo $prefName;
?>

実行結果:

どうですか?
後者の方がスッキリしてますね。

ただし、複数条件を三項演算子で条件分岐させるとソースコードが難解になるので注意が必要です。
「1つの条件で1つの変数へセットする場合」だけにとどめておいてください。

試しにif – elseif – else を三項演算子で表すとどうなるのかソースコードで表してみます。

まずは通常のif 文です。

<?php

// 都道府県コードを指定
$prefCode = 13;

// 都道府県名をセット
if ($prefCode == 13) {
    $prefName = "東京";

} else if ($prefCode == 14) {
    $prefName = "神奈川";

} else {
    $prefName = "";
}

echo $prefName;
?>

上記と同じ内容を三項演算子で書いてみます。

<?php

// 都道府県コードを指定
$prefCode = 13;

// 都道府県名をセット(三項演算子で条件判定)
$prefName = ($prefCode == 13) ? "東京" : (($prefCode == 14) ? "神奈川" : "");

echo $prefName;
?>

どうですか?
急にソースコードが難解になりましたね。

このようにソースコードが難解になりますので、三項演算子は「1つの条件で1つの変数へセット」させるように心がけましょう!

まとめ

PHPのif文について次の内容で解説しました。

  • if文とは
  • if – else で書いてみる
  • if – elseif – else で書いてみる
  • if 文の入れ子
  • 三項演算子を使ってみる

今回は紹介しませんでしたが、if 文は三項演算子だけでなく、{}を省略したり1行で書いたりとif 文の色んな書き方ができますので、人によってソースコードの書き方に癖が出てきやすいところであります。

ですので、if 文の条件分岐を書くときは、if 文の記述ルールを決めて書くのが良いですが、初心者の方は決められないと思いますので、自分が見やすいと思った書き方を模索しましょう。


プログラミングスクールをお探しの方へ

プログラミング学習を挫折せずに続けて成功できる人は

「目的目標を明確にすること」
「質問・相談できる環境を作ること」
「自己解決スキルを身に着けること」

この3つを大切にしてると思います。

ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。

  • テックキャンプ
    本気でIT業界に転職したい方におすすめです。
    転職できなかったら全額返金があります。
  • DMM WEBCAMP
    国から認定されているスクールです。
    やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。
  • TechAcademy
    1週間の無料体験があります。
    気軽にスクールを体験したい方向けです。