优先级问题, 百度知道已经有这个题的答案, 你可以去搜搜.
具体的优先级为: &&->||->and->or 从大到小, 最大为&& 最小为or.
那么这样就不难理解. 答案为什么是 真 假了.
首选我们来看第一个判断 if($i or $j and $z)
and优先级比or大, 所以先算$j and $z, 结果是false, 然后false再和$i算. 也就是这个if判断是这样的: if(false or $i) 只要其中有一个为true, 那么就输出 true, 结果自然是输出了true.
然后看第二个判断: if($i || $j and $z)
||优先级比and大, 所以先算$i || $j, 由于$i和$j都是true, 所以这个判断是这样的:
if(true and $z), 判断括号里面的结果是否为真, 如果真就echo true , 那么结果自然是true.