最高にはまった。そんなの有りか!と叫びたい。 perlでは、 my $p = 1; my $q = 1; my $r = $p ? 'p' : $q ? 'q' : 'foo'; print $r; とすると、「p」が返ってくるが、 phpでは、 <?php $p = 1; $q = 1; $r = $p ? 'p' : $q ? 'q' : 'foo'; print $r; ?> なんと、「q」が返る。 このあたりの解説によると、 <?php // ぱっと見た感じでは、これは 'true' と表示されると思うでしょう。 echo (true?'true':false?'t':'f'); // しかし、実際には上の出力結果は 't' です。 // なぜなら、三項演算子は左から右へ順に評価されるからです。 // 上のコードをもう少しわかりやすく書くと、このようになります。 echo ((tr