php三目运算符?10-3>2?0:true?5:3,为什么结果是3呢?

不解,为什么结果不是0,而是3呢?... 不解,为什么结果不是0,而是3呢? 展开
 我来答
一本菜谱闯天下
2015-10-26 · TA获得超过650个赞
知道答主
回答量:356
采纳率:0%
帮助的人:183万
展开全部

  你这个是双重三目运算,它会先执行排在前面的运算,再执行后面的运算。我加个括号看的会明白些,如下:

  (10-3>2 ? 0 : true)? 5 : 3,首先执行括号里的运算,10-3大于2,条件成立,所以输出结果是0,那么第二个运算公式就变成了0 ? 5 : 3,0表示假的意思,即条件不成立,所以输出结果是3。

  建议写多重三目运算时分开写,不要合在一起,比如:

$a = true ? 5 : 3;
echo 10-3 > 2 ? 0 : $a;

  三目运算符

  语法:

  条件 ? 结果1 : 结果2

  说明:

  问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。

匿名用户
2013-12-04
展开全部
一、10 - 3 > 2 ? 0 : true ? 5 : 3
二、7>2 ? 0 : true ? 5 : 3
三、true ? 0 : true ? 5 : 3
四、0 ? 5 : 3
五、3
在PHP里,0、null、''、empty、false在普通意义上是等价的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
墨水青莲
2015-10-13
知道答主
回答量:37
采纳率:0%
帮助的人:19.1万
展开全部
分开看就行了,第一个10-3>2?0:true这部分,前面7>2是真,三元运算结果是0,然后对第二个三元运算0?5:3, 0这里等同false,所以是3.
实际上只要一步一步往下走就没有问题。
三元运算,以?为分界分两部分,前面的逻辑判读,后面是两个备选结果。根据前面逻辑运算的结果,如果是true的话,结果就是第一个备选,如果是false,结果就是第二个备选
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-13
展开全部
3是错的 结果是0 三目运算符运算顺序从右到左
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式