PHP优先级运算符A?'真假'

Yoo*_*Lim 1 php

我面临一个问题,我在这个陈述中加入了更多的条件 A? 'True': 'False'

据我所知,?的关联性是从左边开始的

这是一个例子

(1 == 2)?'a':(2==3)?'b':'c' =回答'c'
(1 == 2)?'a':(2==2)?'b':'c' =回答'b'

据我所知(1 == 2)==false,然后它出现了错误的情况(2==3)和错误的返回所以答案是c(可能是错的,请纠正我)

以上示例工作正常,但它开始出错了

(1 == 1)?'a':(2==3)?'b':'c' =回答'b'
(1 == 1)?'a':(2==2)?'b':'c' =回答'b'

据我所知 (1 == 1) == true,所以它应该选择'a'并忽略其余的.

参考:http: //php.net/manual/en/language.operators.precedence.php

Jay*_*ard 7

嵌套三元组可能存在问题,因为很难读取正在发生的事情.包围正确解决了这个问题:

(1 === 1) ? 'a' : ((2==3) ? 'b' : 'c')
Run Code Online (Sandbox Code Playgroud)

这样读取:如果1等于1则a,否则执行如果2等于3.