4

私はこのPHPコードを持っています:

echo true ? 'a' : true ? 'b' : 'c';

これの出力は次のとおりです。

b

しかし、私が期待した出力は次のとおりです。

a

4

2 に答える 2

11

PHP の三項演算子は左結合です。

使用する必要があります

echo true ? 'a' : (true ? 'b' : 'c');
于 2013-02-07T12:34:19.950 に答える
2

コードは次のように評価されるためです。

echo (true ? 'a' : true) ? 'b' : 'c';

次と同等です。

echo (true) ? 'b' : 'c';

結果は'b'

于 2013-02-07T12:48:18.433 に答える