『パーフェクトPHP』より。
次のコードの出力する値は?
echo true ? 1 : false ? 2 : 0;
ほとんどのプログラミング言語とは異なり、PHPの三項演算子は左結合です。
そのため、次のように評価されます。
echo ( (true ? 1 : false) ? 2 : 0);
最初の三項演算子の評価値は「1」になり、2つ目の三項演算子の結果が「2」になります。
三項演算子をネストする時は、括弧をつけて評価順を明確にした方がいいかもしれません。
『パーフェクトPHP』より。
次のコードの出力する値は?
echo true ? 1 : false ? 2 : 0;
ほとんどのプログラミング言語とは異なり、PHPの三項演算子は左結合です。
そのため、次のように評価されます。
echo ( (true ? 1 : false) ? 2 : 0);
最初の三項演算子の評価値は「1」になり、2つ目の三項演算子の結果が「2」になります。
三項演算子をネストする時は、括弧をつけて評価順を明確にした方がいいかもしれません。