if文
if文は、PHPはもちろん、他のほとんどのプログラミング言語でも頻繁に使用されています。
次の例はif文を使用した例です。
if_example.php
1 <?php
2 /**
3 * if文を利用した例
4 *
5 * 天候によってメッセージを変えます
6 */
7
8 // 変数に値を代入
9 $weather = 'fair';
10
11 // 雨の場合
12 if ($weather == 'rain') {
13 echo '『雨だ』' . "\n";
14 echo '傘をさす' . "\n";
15 }
16
17 // 雪の場合
18 if ($weather == 'snow') {
19 echo '『雪だわ…』' . "\n";
20 echo '傘をさす' . "\n";
21 }
22
23 // 晴れの場合
24 if ($weather == 'fair') {
25 echo '『いい天気!』' . "\n";
26 echo '傘ささない' . "\n";
27 }
if_example.phpの実行結果
『いい天気!』
傘ささない
12〜15行目がここまでの説明で出てこなかった部分です。18〜21、24〜27行目もですが、同じ形式ですね。
if文の形式
if文の形式は次のようになります。
if (条件式) {
文;
}
- 『if』と記述します。これでif文であることを示します。
- 条件式を『(』と『)』で囲んで記述します。この条件にマッチした場合のみ次の文を実行します。
- 実行したい文を『{』と『}』で囲んで記述します。その文はecho文でも何でも構いません。
注意すべき点は、通常の丸カッコ『()』と波カッコ(中括弧)『{}』を間違えないようにといったところでしょうか。
尚、文の記述の前にタブを記述(インデント)していますが、これはif文の中で実行される文であることを見た目に分かりやすくするためです。インデントしなくても正しく動作はしますが、読みにくいコードになってしまうのでインデントしておくようにしてください。世間一般的にもインデントは常識と思われます。
また、カッコの前後などにスペースが入っていますが、これもコードを読みやすくするためです。決まったルールがある訳ではないのですが、習慣のようなものです。ガイドラインのようなものもありますが、詳しいことは追々説明したいと思いますので、とりあえずは、入力例を真似してください。
比較演算子『==』
条件式の中で使用している『==』は、比較演算子といいます。比較演算子は、他にも種類*がありますが、この『==』は、左辺と右辺が等しければ真(TRUE)という意味です。
つまり、if文と共に使用する場合、左辺と右辺が等しければ、if文中の『{』と『}』で囲まれた部分を実行するということです。
上の例でいえば、$weatherに'fair'が代入されていますから、'fair' == 'fair'は真(TRUE)と判定され、『{}』の中の文が実行される訳です。
尚、『==』は、代入演算子の『=』と間違えやすいので気をつけてください。『if ($weather == 'fair')』と記述すべきところを『if ($wheather = 'fair')』と記述してしまわないようにしましょう(これはよくやってしまうミスです)。
補足『{}』の省略
if文中で実行したい文が1行で書ける場合、次の例のように、『{』と『}』を省略することができます。
if_example2.php
<?php
/**
* if文を利用した例
*
* 天候によってメッセージを変えます
*/
// 変数に値を代入
$weather = 'fair';
// 雨の場合
if ($weather == 'rain') echo '『雨だ』傘をさす' . "\n";
// 雪の場合
if ($weather == 'snow') echo '『雪だわ…』傘をさす' . "\n";
// 晴れの場合
if ($weather == 'fair') echo '『いい天気!』傘ささない' . "\n";
if_example.phpの実行結果
『いい天気!』傘ささない
実行したい文が1行であれば、改行しても構いません。だたし、2行になってしまうと、if文として実行されません。次の例では、14行目がif文として実行されず、単なるecho文として実行されます。
if_example3.php
1 <?php
2 /**
3 * if文を利用した例
4 *
5 * 天候によってメッセージを変えます
6 */
7
8 // 変数に値を代入
9 $weather = 'fair';
10
11 // 雨の場合
12 if ($weather == 'rain')
13 echo '『雨だ』' . "\n";
14 echo '傘をさす' . "\n"; // 2行になるとif文として実行されない
15
16 // 雪の場合
17 if ($weather == 'snow')
18 echo '『雪だわ…』傘をさす' . "\n";
19
20 // 晴れの場合
21 if ($weather == 'fair')
22 echo '『いい天気!』傘ささない' . "\n";
if_example.phpの実行結果
傘をさす
『いい天気!』傘ささない
実行したい文が1行だけであっても、『{』と『}』を使用すると、その中に記述された文がif文として実行される文であることが分かりやすいです。また、初めは実行したい文が1行だけだったとしても、後から何らかの文を追加する可能性もあります。その際には結局『{』と『}』で囲むハメになりますから、『{』と『}』で囲むことをお勧めします。
今後、『{}』を省略したコードに出くわしたら、軽く舌打ちでもしてから、『{}』を追加しておきましょう。