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

为什么要打印2?

echo true ? 1 : true ? 2 : 3;

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

为什么它不按预期工作?

解决方法:

因为你所写的内容与:

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

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

你期望的是:

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

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

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...