为什么是这样的印刷2
?
echo true ? 1 : true ? 2 : 3;
根据我的理解,它应该打印1
.
为什么它没有按预期工作?
因为你写的内容与以下内容相同:
echo (true ? 1 : true) ? 2 : 3;
如您所知,1 被评估为true
.
您期望的是:
echo (true) ? 1 : (true ? 2 : 3);
因此,请始终使用大括号来避免此类混淆。
正如已经写过的,三元表达式在 PHP 中是左关联的。这意味着首先将执行第一个left,然后是第二个,依此类推。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)