SEARCH

CATEGORY

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

両方が true のときだけ結果が true になります。
and&& と同じく論理積を表しますが、演算子の優先順位が異なるため注意が必要です(後述)。
基本的には && を使用するのが安全です。

|| / or

どちらか一方でも true なら結果は true になります。

xor

どちらか一方だけが true の場合に true。
両方 true だと false になる点に注意しましょう。

NOT の使い方

! を使うと、真偽値を反転できます。
true → false、false → true になります。

「&&」と「and」、「||」と「or」の違い

&&and || or は、いずれも論理積・論理和の演算子ですが、優先順位(precedence)が異なります。
そのため、同じように書いても、意図しない結果になることがあります。

上記のように、||=よりも優先されますが、or=よりも後に評価されます。
このため、次のようにグループ化しないと意図しない挙動になることがあります

  • && and よりも優先順位が高い
  • || or よりも優先順位が高い

原則としては、&& || を使うのが無難です。

まとめ

  • 論理演算子は、複数の条件を扱う際に欠かせない
  • &&(AND)や||(OR)が基本
  • andorは優先順位に注意(=との組み合わせで意図しない動作になることがある)
  • xorは「どちらか一方だけが true」のときに使える
  • !で真偽を反転できる(NOT)