2015年9月9日

PHP if構文その2 〜if文の影響範囲〜

«
»

Pocket

前回に引き続きPHPのif文について書いていきたいと思います。
 
前回の記事はこちら⇒

PHP if構文その1

 
まずはサンプルプログラムを見て行きましょう。


<?php
$box = 1;
if ($box == 1) { 
    echo "number is 1.";
} 

echo "<br>"; // 改行
echo $box."is number"; //この行は$boxの中身が1じゃなくても実行される

実行結果

スクリーンショット 2015-09-09 6.39.03

解説

スクリーンショット 2015-09-09 6.35.58
 
サンプルや上図のプログラムにある通り、if文は
 


if (条件式) {
	条件を満たす時に実行する処理
} 

常に実行する処理

 
というように、カッコ()の中に書いた条件に合致した場合、
中カッコ{}の中に書かれた処理を実行しますが、
}以降のプログラムは条件に合致していなくても実行します。
 
もう1つサンプルを紹介して理解を深めましょう。

サンプルプログラム


<?php
$box = 2;
if ($box == 1) { 
    echo "number is 1.";
} 

echo "<br>"; // 改行
echo $box."is number"; //この行は$boxの中身が1じゃなくても実行される

実行結果

$box = 2;の部分が変わっています。

スクリーンショット 2015-09-09 6.45.07

解説

今度はnumber is 1.は表示されず(if文の条件に合致しないため)
改行と2is number.が表示されています。(上にスペースがあるのが改行です。)
 
echo $box.”is number”;の処理はif文の条件によらず、実行されているのがわかると思います。
 
つまり、if文の条件が与える影響範囲は中カッコ{}の内側だけだ、ということです。
 
最後にもう1つだけサンプルプログラムを見ておきましょう。

サンプルプログラム


<?php
$box1 = 1;
$box2 = 2;

if($box1 == 1) { //この条件に合致したら下の3行の処理を実行する
    echo "box1's number is 1.";
    echo "<br>"; 
    echo $box1."is number";
} 

echo "<br>";

if($box2 == 2) // 条件に合致したときに実行したいのは下の行だけ
    echo "box2's number is 2.";

実行結果

スクリーンショット 2015-09-09 6.52.35

解説

これまで中カッコ{}の中のプログラムが実行されると説明してきましたが、
中カッコは上記のように条件に合致した時に実行したい処理が複数ある場合に用います。
 
もし、条件に合致した時に実行したい処理が1行だけであれば
中カッコ{}は不要
となります。

まとめ

・if文の条件に合致した時に実行する処理は中カッコ{}の内側に記述した処理である
・実行したい処理が1行だけの場合は中カッコは不要である

【関連する記事】