PHP が他の言語と違う変なトコの 1つです。
(ちなみに PHP のバージョンは 5.5.9 です)
あまりこんな書き方はしないと思うので 実害はないかもしれませんが PHP の三項演算子は 他の言語と違って左結合です。
$ php -r "echo true ? 1 : false ? 2 : 3;"
2
結果は 2 が返ってきます。
これは次のように左結合で解釈されるためです。
((true ? 1 : false) ? 2 : 3);
他の言語だとだいたい右結合ですよね。
(true ? 1 : (false ? 2 : 3));
とりあえず、三項演算子を使うときはカッコで囲みましょう。
余談ですが、1つ目の値(判定に使っている値)と 2つ目の値(TRUEの時の値)が同じ場合、 省略することができます。
$result = func() ?: null;
I/O 処理などがあり 2回実行したくないときに使えます。