なぜPHPで三項演算子の連結
1 == 1 ? 'green' : 1 < 0 ? 'red' : 'yellow'
リターンred
?
私はJavaとJavascriptに由来しています。この式は、を返します。
それを表示するシンプルなフィドル:https://jsfiddle.net/yt0e8t93/
なぜPHPで三項演算子の連結
1 == 1 ? 'green' : 1 < 0 ? 'red' : 'yellow'
リターンred
?
私はJavaとJavascriptに由来しています。この式は、を返します。
それを表示するシンプルなフィドル:https://jsfiddle.net/yt0e8t93/
C、C++、Java、およびJavascriptが原因右からのもの三項条件演算子の結合性に
1 == 1 ? 'green' : (1 < 0 ? 'red' : 'yellow')
としてこれを評価しますすべての言語で左に(これは、if
のステートメントが考え出される前に戻る)。
しかし、PHPの人は異なると思っていました。これは、順番にtruthyある'red'
'green'
ようです'green' ? 'red' : 'yellow'
に簡素化
(1 == 1 ? 'green' : 1 < 0) ? 'red' : 'yellow'
としてPHPでは、あなたの式が評価されます。あなたは昔ながらの方法をしたい場合は、上記のようにかっこを使用してください。
ここにPHPの謎があります:https://eval.in/715786 –
ありがとう、私はPHPの存在を知らなかった:)今...なぜ結果はPHPで赤ですか? O_o – Mistre83
PHPの神々は入れ子の三項を使ってあなたを罰しています:) –