今天看到这样的代码

$order = strtoupper($order) == 'ASC' || empty($order) ? 'ASC' : 'DESC';

我们假设$order 为空字符串,你是否得出这样的结论,结论1?

然而测试结果是...

ASC

看到这样的结果,我开始怀疑了。。 因为我曾经在博客发过对逻辑运算符的探究

经过群内热心网友的解答,才发现没有注意到优先级 三目的顺序比逻辑运算符还小。 因此我们得出结论是看出? :先执行 然而却是||先

$order = strtoupper($order) == 'ASC' || (empty($order) ? 'ASC' : 'DESC');

当把后面括号起来,结果终于是 1 了。。