[code=php]
<?
$arg = 'T';
$vehicle = ( ( $arg == 'B' ) ? 'bus' :
(( $arg == 'A' ) ? 'airplane' :
(( $arg == 'T' ) ? 'train' :
(( $arg == 'C' ) ? 'car' :
(( $arg == 'H' ) ? 'horse' :
'feet' ))))); //train
echo $vehicle;
?>
[/code]
Секрет фокусу — в порядку виконання операцій.
Без зайвих дужок це працює як
$arg = 'T';
$vehicle = (((((( $arg == 'B' ) ? 'bus' :
( $arg == 'A' )) ? 'airplane' :
( $arg == 'T' )) ? 'train' :
( $arg == 'C' )) ? 'car' :
( $arg == 'H' )) ? 'horse' :
'feet' ); //horse
echo $vehicle;
Будь-яке співпадіння значень дає істину в наступній умові, та — в наступній, і т.д., тому результатом може бути або 'horse', або 'feet'.
P.S. Наведений вище код на С++ дає правильний результат і без додаткових дужок.