PHPで条件によって処理を分岐する方法を解説します。これができるようになると「嗚呼、私、プログラミングしてる」と実感できます。
if文の使い方
if文とは「もし〇〇だったら、△△する。そうでなければ、××する。」のように条件に応じて処理を変えるときに使う構文です。
if
if文の書き方は次のとおりです。if
の後ろの丸括弧()
内に条件式を書きます。その後ろの波括弧{}
内に処理を書きます。条件が真(true
)ならば処理が実行され、偽(false
)ならば実行されません。
if (条件式) {
//条件が満たされたときに実行する処理
}
具体的に書いてみます。
$a = 66;
if ($a == 66) {
echo 'aは66です';
}
条件式$a == 66
で$a
が66
と等しいかどうかを評価しています。等しければ$a == 66
はtrue
を返します。条件がtrue
なので、「aは66です」が出力されます。
else
条件が満たされなかったときの処理をするにはelse
を使います。
$a = 65;
if ($a == 66) {
echo 'aは66です';
} else {
echo 'aは66ではありません';
}
まず、$a == 66
が評価されます。$a
は66
ではないのでfalse
が返ります。echo 'aは66です';
は実行されません。
条件が満たされない場合、if
の後ろにelse
があれば、その処理が実行されます。この例では「aは66ではありません」が出力されます。
elseif
if
の条件を満たさない場合に、別の条件を試したい場合はelseif
を使います。
$a = 66;
if ($a > 100) {
echo '$aは100より大きいです';
} elseif ($a > 50) {
echo '$aは50より大きく100以下です';
} else {
echo '$aは50以下です';
}
まず、$a > 100
が評価され、false
が返ります。
次に、$a > 50
が評価され、true
が返ります。そして「$aは50より大きく100以下です」が出力されます。
elseif
はいくつでも連続して使うことができます。
無料で利用できるプログラミング学習サービスをお探しならば Code Lesson はいかがでしょうか。プロのエンジニアが監修した学習ロードマップで効率的に学習、AIに質問、最後にクイズで理解度をチェックできます。
条件式の書き方
条件式はブール値(true
またはfalse
)を返すものならばなんでもOKです。
比較演算子
よく使われる比較演算子は次のとおりです。
例 | 戻り値 |
---|---|
$a == $b | $a と$b が等しければtrue |
$a === $b | $a と$b が型も含めて等しければtrue |
$a != $b | $a と$b が等しくなければtrue |
$a < $b | $a が$b より小さければtrue |
$a > $b | $a が$b より大きければtrue |
$a <= $b | $a が$b 以下ならばtrue |
$a >= $b | $a が$b 以上ならばtrue |
使用例
//$aに数値の66、$bに文字列の66を代入
$a = 66;
$b = '66';
//「aとbは等しいですが、型は異なります」と出力されます
if ($a === $b) {
echo 'aとbは等しく、型も同じです';
} elseif ($a == $b) {
echo 'aとbは等しいですが、型は異なります';
} else {
echo 'aとbは等しくありません';
}
論理演算子
よく使われる論理演算子は次のとおりです。
例 | 戻り値 |
---|---|
$a and $b | $a および$b がどちらもtrue ならばtrue |
$a && $b | $a および$b がどちらもtrue ならばtrue |
$a or $b | $a または$b のどちらかがtrue ならばtrue |
$a || $b | $a または$b のどちらかがtrue ならばtrue |
!$a | $a がtrue でなければtrue |
使用例
$a = 66;
//「aは10より大きく、100より小さいです」と出力されます
if ($a > 10 && $a < 100) {
echo 'aは10より大きく、100より小さいです';
} else {
echo 'aは10以下、または100以上です';
}
$a = 666;
//「aは10と等しいか、100より大きいです」と出力されます
if ($a == 10 || $a > 100) {
echo 'aは10と等しいか、100より大きいです';
} else {
echo 'aは10と等しくもなければ、100より大きくもありません';
}
$a = true;
//「aはtrueです」と出力されます
if (!$a) {
echo 'aはtrueではありません';
} else {
echo 'aはtrueです';
}
関数
条件式ではブール値(true
またはfalse
)を返す関数を使うこともあります。
使用例
$a = array(66, 67, 68);
//is_array関数は引数が配列ならばtrue、配列でなければfalseを返します
//「aは配列です」と出力されます
if (is_array($a)) {
echo 'aは配列です';
} else {
echo 'aは配列ではありません';
}
if文のいろいろな書き方
波括弧の省略
波括弧{}
の中に書く処理が1文だけの場合は波括弧を省略することができます。
$a = 66;
//波括弧ありの書き方
if ($a == 66) {
echo 'aは66です';
}
//上記の文をこのように書くことができます
if ($a == 66)
echo 'aは66です';
//処理が2文以上のときはこのように書くことはできません
if ($a == 66)
echo 'aは66です';
echo '本当です';
2文以上のときは書けないといっても、エラーにはなりません。なぜならば、2つ目の処理のecho '本当です';
はif文の外側にある単独の処理として実行されるからです。危険です。
波括弧を省略するのはやめましょう。
コロンとendif
コロン:
とendif
を使う書き方もあります。
$a = 66;
if ($a == 6) :
echo 'aは6です';
elseif ($a == 66) :
echo 'aは66です';
else :
echo 'aは6でも66でもありません';
endif;
私個人的には使ったことがないのですが、場合によってはスッキリとして見やすいかもしれませんね。
三項演算子
三項演算子を使うと1行で簡単なif…else文と同じような処理ができます。
三項演算子の書き方は次のとおりです。
条件式 ? 真の式 : 偽の式
条件式がtrue
ならば真の式、false
ならば偽の式を返します。
if文と三項演算子、それぞれの書き方を比較してみます。
$a = 66;
//if文で書く場合
if ($a == 66) {
echo 'aは66です';
} else {
echo 'aは66ではありません';
}
//三項演算子で書く場合
$msg = $a == 66 ? 'aは66です' : 'aは66ではありません';
echo $msg;
//もっとシンプルバージョン
echo $msg = $a == 66 ? 'aは66です' : 'aは66ではありません';
以上でーす。まぁ、慣れないうちは素直に波括弧を使う書き方でいいんじゃないでしょうか。
でわでわ
無料で利用できるプログラミング学習サービスをお探しならば Code Lesson はいかがでしょうか。プロのエンジニアが監修した学習ロードマップで効率的に学習、AIに質問、最後にクイズで理解度をチェックできます。
コメント