Primero, la versión reducida del problema:
Código PHP:
Ver original$arg = 'T';
$vehicle =
( $arg == 'T' ) ? 'train' :
( $arg == 'H' ) ? 'horse' :
'feet';
echo $vehicle
Esto da como resultado
horse.
Leyendo el código, puedes pensar que lo que hace PHP es esto (ojo a los paréntesis):
$vehicle = ( $arg == 'T' ) ? 'train' :
(( $arg == 'H' ) ? 'horse' :'feet'
);
Pero no es eso lo que hace.Lo que hace es:
$vehicle =
( ( $arg == 'T' ) ? 'train' :( $arg == 'H' )
) ? 'horse' :'feet';
Reduciendo:
$vehicle=
('train')?'horse':'feet';
$vehicle='horse';
Un bonito WTF