PHP多个三元运算符没有按预期工作
作者:互联网
为什么要打印2?
echo true ? 1 : true ? 2 : 3;
根据我的理解,它应该打印1.
为什么它不按预期工作?
解决方法:
因为你所写的内容与:
echo (true ? 1 : true) ? 2 : 3;
如你所知,1被评估为真.
你期望的是:
echo (true) ? 1 : (true ? 2 : 3);
所以总是使用牙箍来避免这种混淆.
如前所述,三元表达式在PHP中是左对联的.这意味着首先将从左侧执行第一个,然后执行第二个,依此类推.
标签:php,ternary-operator 来源: https://codeday.me/bug/20190925/1816073.html