Укладка тройных выражений

Я пытаюсь установить тройные выражения для этого скрипта, но я все время становлюсь неожиданным »)

Вот мой сценарий

$uri = 9; $build_status = 20; /** Using Ifs */ if($uri == 20) { echo 'ci=>passing'; } if($uri < 20 && $uri > 10 && $uri != $build_status) { echo "ci=>almost failing"; } if($uri < 20 && $uri > 18 && $uri != $build_status) { echo "ci=>test your code!"; } elseif($uri < 5) { echo "ci=>failed."; } /** Stacking */ echo (($uri==20 ? 'ci=>passing') ? ($uri < 20 && $uri > 10 && $uri != $build_status) : 'ci=>almost failing') ; 

Где я иду не так?

 echo ($uri==20 ? 'ci=>passing' : ($uri < 20 && $uri > 10 && $uri != $build_status ? 'ci=>almost failing' : ($uri < 20 && $uri > 18 && $uri != $build_status ? 'ci=>test your code!' : ($uri < 5 ? 'ci=>failed.' : "[doesn't match previous conditions]" )))); 

В большинстве языков скобки необязательны, но php требует их, поскольку тернарный оператор лево-ассоциативный http://www.phpsadness.com/sad/30

($uri==20 ? 'ci=>passing') является синтаксической ошибкой. Вам нужно : внутри parens.

+1 к комментарию о сложении тройного выражения. Это еще более актуально для PHP, потому что синтаксический анализатор ужасно нарушен в отношении вложенных тернарных выражений.