PHPの演算子の優先順位

※過去ブログの転記

 

評価順位 表記 名前 意味
&& 論理積 $a && $b $aと$bがTRUEの時にTRUE
  || 論理和 $a || $b $aまたは$bがTRUEの時にTRUE
  = 代入演算子 $a = $b $aに$bを代入
  and 論理積 $a and $b $aと$bがTRUEの時にTRUE
  xor 排他的論理和 $a xor $b $aか$bどちらかがTRUEの時にTRUE
or 論理和 $a or $b $aまたは$bがTRUEの時にTRUE

ex

//&&,and
$bool = TRUE && FALSE ? 1 : 2;//2
$bool = TRUE and FALSE ? 1 : 2;//TRUE
//||,or
$bool = TRUE || FALSE ? 1 : 2;//1
$bool = TRUE or FALSE ? 1 : 2;//TRUE

and,or=より優先度が低く、$bool = TRUEが実行されるためこのような結果になる

=と同時に使いたい時は条件式を括弧で囲ってあげればOK

$bool = (TRUE and FALSE) ? 1 : 2;//2
$bool = (TRUE or FALSE) ? 1 : 2;//1

xorを初めて知った
どちらか一方がTRUEの場合に時にのみTRUEを返す

$bool = (TRUE xor TRUE) ? 1 : 2;//2
$bool = (TRUE xor FALSE) ? 1 : 2;//1