关于php的运算符问题

= > and // 优先级: || > = > or $a = 3; $b = false; $c = $a or $b; var_dump($c); // 这里的 $c 为 int 值3,而不是 boolean 值 true $d = $a || $b; var_dump($d); //这里的 $d 就是 boolean 值 true ?>

为什么 //这里的 $d 就是 boolean 值 true
这里一直理解不了,$a || $b 他的内容不是3 || false吗,为什么结果是true


$a || $b  就是  a 或者 b ,所以结果是 true

同时,如果是表达式,那么 如果表达式a 为真,后面的php就不处理了,直接返回true,如果表达式a为假,那么再去看表达式b
或的原则就是有一个为真就是真

$c = $a or $b  这个就像 $c * $a + $b 类型,先处理 $c=$a,然后结果与$b or