16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

&&とANDの違い

Last updated at Posted at 2016-08-06

#はじめに
PHPで論理積を行う演算子、&&とAND、
および、論理積を行う演算子、||とOR、この違いを調べたのでまとめた

#違い
結論から述べると、&&とAND、この両者の違いは、
&&(AND)前後の式の結合度が異なる。

演算子の計算には、優先順序がある。例えば、以下のような加算と乗算では、乗算の方が優先される。
そのため、カッコを付けることで、加算を乗算よりも先に計算しようとする。
例: 1 + 2 * 3 => 7
例: ( 1 + 2 ) * 3 => 9

しかし、計算の優先順位が同じ場合は、結合性(右から評価をするにか、左から評価をするのか)によって計算の順序が決まる。
例えば、
「−」は、左結合のため、
1 − 2 − 3 は ( 1 − 2 ) − 3 のように、計算される
一方、「=」は、右結合のため、
$a = $b= $c は、$a = ($b = $c) のようになる

では、&&とANDについてである。
&&とANDでは、&&の方が演算子の優先順位が高い。
また、ANDは、「=」や、「+」「-」、「<」「>」などよりも優先順位が低い

そのため、
$a = true && false; => $a に代入されるのは、(true && false) の評価結果 => $a = false

$b = true and false; => ($b = true ) and false => $b には true が代入される

#まとめ
&&(||)を使いましょう。

参考
[演算子の優先順位]
(http://jp2.php.net/manual/ja/language.operators.precedence.php)

16
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?