【PHP】if文 – 条件分岐 / 条件による処理の分岐

【PHP】if文 – 条件分岐 / 条件による処理の分岐

プログラミングでは処理を分岐することができます。

ここでは処理を分岐するif文について解説します。

検証環境

条件分岐

条件分岐は“条件によって処理を分岐すること”です。

if文

if文は“条件分岐を実現する構文”です。

基本構文

if( 論理値 ) {
    // 処理...
}

波括弧({})内の処理は論理値trueの場合のみ実行し、falseの場合はスキップします。

また、論理値の部分は最終的にtrueまたはfalseの値であれば良いため、比較演算子や論理演算子を使った演算式を記述することができます。

一般的にif文などの条件分岐に使う論理値の演算式を『条件式』と呼びます。

サンプル

<?php

$x = 180;

___ih_hl_start
if( 100 <= $x ) {
    echo "100以上の値です。\n";
}
___ih_hl_end

echo '処理を終了します。';

?>
$ php sample.php
100以上の値です。
処理を終了します。

5〜7行目がif文の条件分岐です。

条件式100 <= $xtrueの場合に波括弧内の処理を実行します。

$x180のため、条件式はtrueです。

そのため、実行結果からも分かるようにecho "100以上の値です。\n";が実行されています。


また、$xの値を30に変更すると、条件式はfalseになるため、波括弧内の処理はスキップされます。

<?php

___ih_diff_start
-$x = 180;
+$x = 30;
___ih_diff_end

if( 100 <= $x ) {
    echo "100以上の値です。\n";
}

echo '処理を終了します。';

?>
$ php sample.php
処理を終了します。

このようにif構文を使うことで、変数などの値に応じて、処理を分岐することが可能になります。

演習問題

問題1

お店のお会計で割引を適用するプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • 合計金額は『単価×個数』で計算する
  • 単価は150円とする
  • 個数はコマンドライン引数で与える
  • 割引は個数が5個以上の場合、合計金額から10%OFF
$ php practice.php 8
割引金額         : 120円
合計金額(割引前) : 1200円
合計金額(割引後) : 1080円

問題2

お店のお会計で割引を適用するプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • 合計金額は『単価×個数』で計算する
  • 単価と個数はコマンドライン引数で与える(単価、個数の順)
  • 割引は個数が5個以上かつ合計金額が10,000円以上の場合、合計金額から15%OFF
$ php practice.php 3000 5
割引金額         : 2250円
合計金額(割引前) : 15000円
合計金額(割引後) : 12750円