PHPの三項演算子って変じゃね?

PHP三項演算子って変じゃね?

 ふつーに

$per_page = ($per_page < 10)?        10
          : ($per_page > 50)?        50
          :                   $per_page
          ;

とか書いてたら、$per_pageが0の時に50が返ってきて死ぬかと思った。

 ふつーの言語の三項演算子*1って上記で正しく動くと思うんだけど、PHPみたいなの*2って他にあるんでしょーかね。

追記

 ちなみにPHPでは

$per_page =  $per_page < 10 ?        10
          :( $per_page > 50 ?        50
          :(                  $per_page
          ));

――と書くようにしています :p

*1:右結合のはず。

*2左結合だそうな