三項演算子の入れ子でハマったら、マニュアルに思いっきり書いてあった件。
http://php.benscom.com/manual/ja/language.operators.comparison.php
評価順序が違うから、“重ねて使う"のはなるべく止めてね、とのこと。
以下の例は、一見"true"って出力されるように見えて、“t"と表示される。
echo (true?'true':false?'t':'f');
これはつまり、
echo ((true ? 'true' : 'false') ? 't' : 'f');
こういう評価順になるらしい。 なんでこんなことを。。。
でも、一応こうすれば期待通りに動く。
echo (true ? 'true' : ('false' ? 't' : 'f'));
いや、「評価順序が怪しい書き方はしない」が正解なんだけどもね。