こんにちは。
この記事では、PHPにおいて「複数の条件を組み合わせる」際に使われる論理演算子(ろんりえんざんし)について解説します。
前回までに学んだ if文
をベースに、より柔軟な条件分岐ができるようになるための重要な構文です。
論理演算子とは?
PHPでは、複数の条件を一つにまとめて判定したいときに「論理演算子」を使います。
以下は、よく使われる論理演算子です。
記号 | 読み方 | 条件の意味 |
---|---|---|
&& | かつ | 左右どちらも true のときのみ全体が true になる |
|| | または | 左右のどちらか、または両方が true なら true |
! | 否定 | 条件が true のとき false に、false のとき true にする |
🧠 これらを使うことで、より複雑な条件分岐が短く簡潔に記述できます。
それぞれの論理演算子の働き
🔸 &&
(かつ)
2つの条件が 両方とも true のときに、処理が実行されます。
“`php
if ($score >= 60 && $score <= 80) {
echo “平均的な点数です。”;
}
$score
が60以上かつ80以下のときだけ実行されます
🔸 ||
(または)
どちらか一方が true であれば処理されるパターンです。
if ($role == 'admin' || $role == 'editor') {
echo "このユーザーは編集権限があります。";
}
$role
がadmin
かeditor
のいずれかなら true
🔸 !
(否定)
条件が true なら false に、false なら true に変換します。
$isGuest = false;
if (! $isGuest) {
echo "ゲストではないユーザーです。";
}
$isGuest
が false のとき! $isGuest
は true になります
実例:3の倍数と7の倍数を条件で分けて表示
以下のように、if〜elseif〜else文と論理演算子を組み合わせて、条件ごとに出力を変えることができます。
<?php
$x = 1071;
if ($x % 3 == 0 && $x % 7 == 0) {
echo "xは3の倍数かつ7の倍数です。";
} elseif ($x % 3 == 0) {
echo "xは3の倍数ですが7の倍数ではありません。";
} elseif ($x % 7 == 0) {
echo "xは7の倍数ですが3の倍数ではありません。";
} else {
echo "xは7の倍数でも3の倍数でもありません。";
}
?>
💡 補足:
%
は割った余りを求める演算子$x % 3 == 0
→ 「xが3の倍数である」ことを意味します- 条件は 上から順に評価され、最初に true になったブロックのみが実行されます
論理演算子のまとめ表
&&
(かつ)
条件A | 条件B | 結果(A && B) |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
||
(または)
条件A | 条件B | 結果(A || B) |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
よくあるつまずきポイント
❌ 「=」と「==」の混同
if ($score = 80) { // ← これは代入。常にtrueになります!
echo “条件判定ミス!”
判定には必ず ==
(等しい)や ===
(型も含めて等しい)を使いましょう判
✅ グルーピングに ()
を使おう
複雑な条件は、必ず ()
で区切ってわかりやすくしましょう。
if (($x > 10 && $x < 50) || $x == 100) {
echo “条件に一致”;
}
まとめ|論理演算子で条件分岐の幅が広がる!
今回の記事では、複数の条件を1つにまとめて判定できる**論理演算子(&&・||・!)**について学びました。
✅ おさらいポイント
&&
は両方 true のときに実行(AかつB)||
はどちらか true なら実行(AまたはB)!
は条件の否定(trueをfalseに)- 条件が複雑な場合は、
()
で区切ってわかりやすく書く
次回は、繰り返し処理に便利な「for文」の基本と使い方を解説します!
「同じ処理を何度も繰り返す」ような場面でとても便利なので、ぜひチェックしてください。