MENU

哇,三目(条件)的顺序真有趣

April 4, 2020 • Read: 318 • 折腾


今天看到这样的代码

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

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

然而测试结果是...

此处内容需要评论回复后方可阅读

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

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

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

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

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

已有 1 条评论
  1. 刚好复习到这里,来看看@(滑稽)