Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/11/2013, 19:11
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Lógica del operador en linea :?

Primero, la versión reducida del problema:
Código PHP:
Ver original
  1. $arg = 'T';
  2. $vehicle =
  3. ( $arg == 'T' ) ? 'train' :
  4. ( $arg == 'H' ) ? 'horse' :
  5. 'feet';
  6. 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

Última edición por dashtrash; 07/11/2013 a las 08:08