スーパーウルトラグレートデリシャスワンダフルブログ

初心者の初心者による初心者のためのブログ

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

<?php 
//&&,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

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

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

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