码迷,mamicode.com
首页 > Web开发 > 详细

php 三元运算符

时间:2016-03-08 19:35:03      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

最近在项目中用了一个嵌套的三元运算,想当然的以为没问题,没测试便上线了(这个毛病不好),结果却被同事羞辱了一番。

条件?真 :假,先测试条件,如果为真则执行?后的语句,如果为假,则执行:后的语句。

true?1:-1 ,表达式的结果为1,false?1:-1表达式的结果为-1。

这没什么难理解的,而我错在嵌套时不知道它的结合性,是左结合而不是想当然的右结合。

1 == $a ? 1 : 2==$a ? 2 : 3

我想表达的意思是 如果$a为1则返回1,为2 返回2 ,其它返回3.上面表达式的结果永远不会是1;

上面表达是与(1 == $a ? 1 : 2==$a) ? 2 : 3 等价。

而我实际需要的是1 == $a ? 1 : (2==$a ? 2 : 3)

 

顺便说一句 加括号是个好习惯。

 

php 三元运算符

标签:

原文地址:http://www.cnblogs.com/nwyf/p/5255229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!