php 三元运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 三元运算符相关的知识,希望对你有一定的参考价值。

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

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

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 三元运算符的主要内容,如果未能解决你的问题,请参考以下文章

php 中 三元运算和 IF语句 运行速度

PHP三元运算符

PHP速记三元运算符“?:”解析错误意外“:”

php 三元运算符实例详细介绍

PHP PHP中三元运算符的简写

php 三元运算符