微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP多个三元运算符没有按预期工作

为什么要打印2?

echo true ? 1 : true ? 2 : 3;

根据我的理解,它应该打印1.

为什么它不按预期工作?

解决方法:

因为你所写的内容与:

echo (true ? 1 : true) ? 2 : 3;

如你所知,1被评估为真.

你期望的是:

echo (true) ? 1 : (true ? 2 : 3);

所以总是使用牙箍来避免这种混淆.

如前所述,三元表达式在PHP中是左对联的.这意味着首先将从左侧执行第一个,然后执行第二个,依此类推.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐