php

【php】if文の基本的な使い方を初心者向けに徹底解説!

phpのif文

 

if文とは?

通常のプログラムを、「もし〜なら…する」という条件によって処理を分岐させる制御構文です。

 

 

また、if文には次のような使用例があります。

  • 入力フォームで必要文字数に満たない場合にメッセージを表示させる
  • エラーが起きた場合のみ特別なメッセージを表示させる

このように「if文」は、ある一定の条件を満たしたとき「別の処理」を行いたい場合に使用するとても重要な構文です。

 

この記事では

if文elseを使った 単純分岐 や、elseifを使った 多岐分岐 などの基本的な使い方を、実際のコードやイラストを交えて優しく解説しています。

 

できるだけわかりやすく解説するので、ぜひ最後まで読んでみて下さいね!

目次

phpのif文の単純分岐 elsephpのelseを使用する場合phpのelseを使わない場合phpの一行で記述するif文
if文の多岐分岐 elseifif文のネストphpの条件演算子を使った条件分岐


 📖目次に戻る

if文の単純分岐 else

if文は、与えられた条件式の結果が正しい 「true」または、違っている「false」 かによって処理を分岐させます。

 📖目次に戻る

elseを使用する場合

条件式の結果が「true」の場合は if()の直後のブロックの処理を実行し、「false」の場合は elseの直後のブロックの処理を実行します。

ブロックは、{ ~ } で囲まれた部分のことだよ

 

構文 - elseを使ったif文

if (条件式) {

//条件式がtrueである場合に実行する処理

} else {

//条件式がfalseである場合に実行する処理

}

「条件式」とは、例えば「もし田中君が未成年なら、お酒は飲めません!」という文章があった場合の「もし田中君が未成年なら」の部分にあたります。

そして、この条件式は「演算子」と組み合わて使用することが多いです。

 

演算子は、簡単に言うと四則演算で使用されるような記号(「+」「-」「/」「*」)のことだよ

 

では早速確認してみましょう。

今回は、例として「田中君はお酒が飲めるか?」を if文を使って年齢で判定させてみます。

例題

未成年の場合は「お酒は飲めません!」、成人の場合は「お酒飲めます!」という文章が出力されるif文を用意し、年齢が「19」だった場合の結果を出力してみましょう。
 </>php
<?php

$age = 19; echo '田中君は、';

if ($age < 20) {

echo 'お酒は飲めません!';

} else {

echo 'お酒飲めます!';

} ?>

「田中君は、お酒は飲めません!」と怒られてしまいましたね。

これは、最初の「$age = 19;」で田中君の年齢を19歳に設定しているため、条件式( age < 20 )でtrueとなり、直後のブロック{} の中のプログラムが実行されているためです。

 

ちなみに、最初の age に「20」以上の数字を代入すると「田中君は、お酒飲めます!」と表示されるよ

 📖目次に戻る

elseを使わない場合

実は「else」を使用せず、「if」のみを使用して条件分岐させることも可能です。

これは、ある条件に合致したときのみ処理を実行する書き方です。

 

それでは、前項で使用した式をelseを使わない式に書き換えてみましょう。

 </>php

<?php

$age = 19;

if ($age < 20) {

echo '田中君は、お酒は飲めません!';

}  ?>

先ほどと同じ結果が表示されましたね。

もし最初の $age に「20」以上の数字を代入した場合は、プログラムがif文を抜けて、さらに下の処理から実行されます。

 📖目次に戻る

一行で記述するif文

前述したelseを使わないif文は、さらに { } (ブロック)省略して記述することができます。

では早速、elseを使わない式から {} を取り除いて記述してみましょう。

 </>php

<?php

$age = 19;

if ($age < 20) echo '田中君は、お酒は飲めません!'; ?>

 

elseを使わないif文は、特定の条件に合致したときだけ何か処理をしたい場合に使えるテクニックだね

 📖目次に戻る

if文の多岐分岐 elseif

前項では「if」「else」を使って、処理をtrueの場合とfalseの場合の2つに分岐させましたが、

「elseif」を使うことで、さらに分岐の条件を指定して、多岐分岐させることができます。

「もし〜なら...を、それとも○○なら△△をいずれでもなければ××を」という表現が可能になります。

なんだかしつこい奴みたいですね。

構文 - elseifを使ったif文

if (条件式1) {

 //条件式1がtrueである場合に実行

} elseif(条件式2) {

 //条件式2がtrueである場合に実行

...

} else {

 //いずれもfalseである場合に実行

}

「elseif」は必要に応じて、分岐の数だけ使用することができるよ

 

では、実際に確認してみましょう。

今度は、「田中君のテストの評価」をelseif文を使って点数分岐させてみます。

例題

田中君の点数によって、

90点以上は「大変良くできました!!」

70点以上は「良くできました!!」

60点以上は「まぁまぁ良くできました!」

59点以下は「不合格です。」

と表示されるプログラムを用意し、テストの点数が「75点」だった場合の結果を出力してみましょう。

 </>php

<?php

$score = 75; echo '田中君は、';

if ($score >= 90) {

echo '大変良くできました!!';

} elseif($score >=70) {

echo '良くできました!'; //こちらが表示されます

} elseif($score >=60) {

echo 'まぁまぁ良くできました!';

} else {

echo '不合格です。';

} ?>

田中君の点数は75点なので、最初の条件式($score >= 90)はfalseとなりif直後のブロックはスルーされます。

次の条件式($score >=70)は、trueとなるのでelseif直後のブロックが実行され、「良くできました!」が表示されました。

 

ここで注意してもらいたいのが、

注意ポイント

複数の条件式がtrueでも、実行される処理は最初にtrueとなった1ブロックのみ
 だということです。

 

それでは、今度は田中君が「100点」を取った場合の例で見てみましょう。

 </>php

<?php

$score = 100; echo '田中君は、';

if ($score >= 90) {

echo '大変良くできました!!';

} elseif($score >=70) {

echo '良くできました!';

} else {

echo '不合格です。';

} ?>

結果は、90点以上なので最初の条件式($score >= 90)でtrueとなり、「大変良くできました!!」が表示されました。

ですが、70点以上でもあるので、次の条件式($score >=70)もtrueで「良くできました!」「大変良くできました!!」と、さらに2回褒められても良さそうですが、反映はされません。

 

最初にtrueとなった時点でif文の外から処理が開始するため、それ以降の条件式は判定すらされない点に注意して下さい。

 

elseifを使って条件式を複数指定するときは順番に気をつけようね。


📖目次に戻る

if文のネスト

if文は、if文の中にif文記述して「入れ子構造」にすることもできます。

この入れ子構造のことをネストと呼びます。

では、先ほどのif文をネスト構造に書き換えてみましょう。

前項で、田中君はせっかく100点を取ったので、100点を取った時だけ特別なメッセージが出るようにしてみます。

例題

先程のif文の内部に、100点を取った場合のみ「満点おめでとう!」というメッセージが出力されるif文を記述し、田中君が「100点」を取った場合の結果を出力してみましょう。

 </>php

<?php

$score = 100; echo '田中君は、';

if ($score >= 90) {

echo '大変良くできました!!';

    if ($score === 100) {

        echo '満点おめでとう!!';   

      } 

} elseif($score >=70) {

echo '良くできました!';

} else {

echo '不合格です。';

} ?>

($score >= 90) がtrueなので「大変良くできました!!」が表示されるのはもちろん、

同じブロック内にある条件式($score === 100) もtrueとなり、追加で「満点おめでとう!!」というメッセージが表示されていますね。

 

ネストの深さに制限はありませんが、あまり深い構造にすることは望ましくないでしょう。

📖目次に戻る

条件演算子 を使った条件分岐

最後に、演算子の一種である「条件演算子」(三項演算子)を使った条件分岐を見てみましょう。

条件演算子(三項演算子)

条件演算子は、条件式の後ろに「?」を記述し、「trueの場合に出力する式」と「falseの場合に出力する式」の間に「 : 」で区切って使用します。

 

例題

未成年の場合は「お酒は飲めません!」、成人の場合は「一緒に呑もう!」という文章が出力される条件演算子を用意し、田中君の年齢が「27」だった場合の結果を出力してみましょう。
 </>php

<?php

$age = 27;

echo $age < 20 ? '田中君は、お酒は飲めません!' : '田中君、一緒に呑もう!' ; ?>

 

この構文は、単に条件で出力する値を振り分ける場合に便利だね

 📖目次に戻る

最後に

いかがでしたでしょうか、今回はphpの基本である制御構文の「if文」について解説しました。

もちろんこれ以外の制御構文についても解説していますので、興味のある方は是非こちらもチェックしてみて下さい。

php

phpの基本文法と基礎テクニックについて初心者向けに解説しているよ!!  

続きを見る

最後までお読みいただき、ありがとうございました!



-php
-