PHP入門:論理演算子とは?&&・||・and・or の違いと使い方をわかりやすく解説

論理演算子とは?
論理演算子は、「AかつB」や「CまたはD」といった 複数の条件を組み合わせて判断するための演算子 です。
主にif文やwhile文などの条件式で使われ、処理の分岐や繰り返しに柔軟性をもたらします。
PHPの論理演算子一覧
以下はPHPで使える主な論理演算子とその意味です。
| 演算子 | 説明 | 例 | 結果が true になる条件 |
|---|---|---|---|
&& | 論理積(AND) | $a && $b | $aと$bが両方 true のとき |
and | 論理積(AND) | $a and $b | $aと$bが両方 true のとき |
or | 論理和(OR) | $a or $b | $aまたは$bのいずれかがtrue のとき |
xor | 排他的論理和(XOR) | $a xor $b | $aと$bのどちらか一方が true(両方 true は false) |
! | 否定(NOT) | !$a | $aが false のとき true になる |
AND と OR の使い方
&& / and
|
1 2 3 4 5 |
$a = true; $b = true; var_dump($a && $b); // true var_dump($a and $b); // true |
両方が true のときだけ結果が true になります。and も && と同じく論理積を表しますが、演算子の優先順位が異なるため注意が必要です(後述)。
基本的には && を使用するのが安全です。
|| / or
|
1 2 3 4 5 |
$a = true; $b = false; var_dump($a || $b); // true var_dump($a or $b); // true |
どちらか一方でも true なら結果は true になります。
xor
|
1 2 3 4 5 6 7 8 9 |
$a = true; $b = false; var_dump($a xor $b); // true $a = true; $b = true; var_dump($a xor $b); // false |
どちらか一方だけが true の場合に true。
両方 true だと false になる点に注意しましょう。
NOT の使い方
|
1 2 3 |
$a = true; var_dump(!$a); // false |
! を使うと、真偽値を反転できます。
true → false、false → true になります。
「&&」と「and」、「||」と「or」の違い
&& と and 、|| と or は、いずれも論理積・論理和の演算子ですが、優先順位(precedence)が異なります。
そのため、同じように書いても、意図しない結果になることがあります。
|
1 2 3 4 5 |
$val = false || true; var_dump($val); // true(|| が優先される) $val = false or true; var_dump($val); // false(= が先に評価されるため) |
上記のように、||は=よりも優先されますが、orは=よりも後に評価されます。
このため、次のようにグループ化しないと意図しない挙動になることがあります
&&はandよりも優先順位が高い||はorよりも優先順位が高い
原則としては、&& や || を使うのが無難です。
まとめ
- 論理演算子は、複数の条件を扱う際に欠かせない
&&(AND)や||(OR)が基本andやorは優先順位に注意(=との組み合わせで意図しない動作になることがある)xorは「どちらか一方だけが true」のときに使える!で真偽を反転できる(NOT)
![MARKLEAPS[マークリープス]](https://markleaps.com/blog/wp-content/themes/mkl/images/00_logo.png)