論理演算子、「and,or」「&&,||」の違い

2013.01.18

こんにちは、アーキテクトの小山です。

今回は論理演算子の違いについてです。

分岐を記述する上等で、論理演算子はかなりの頻度で使用しますよね。

最もよく使うであろうand,or,&&,||の使用方法には注意が必要です。

$hoge = true and false;

$hoge = true && false;

andと&&は同じ意味ですが、優先順位が違います。

高い順から、&&,=,andとなっています。

ですので、括弧で囲わない先ほどの式の場合は

$hoge = true and false;//true

$hoge = true && false;//false

となります。

これは、括弧が無いので=とand,=と&&がそれぞれ優先順位の高いものから計算されていくからです。

ですので、以下のように括弧をいれることで想定通りの動きになります。

$hoge = (true and false);//false

$hoge = (true && false);//false

些細なことですが、比較するときは必ず括弧を入れる癖をつけておいたほうがよさそうです。

lab-php5

一覧へ