Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/01/2014, 16:37
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 8 meses
Puntos: 397
Respuesta: // Lo anterior es idéntico a esta sentencia if/else

En el manual de PHP dice que si se puede pero que hay que tener mucha precaución ya que el uso de los paréntesis para encerrar las condiciones es obligatorio si no quieres tener resultados extraños.

Cita:
Nota:
Es recomendable evitar el "apilamiento" expresiones ternarias. El comportamiento de PHP al utilizar más de un operador ternario en una única sentencia no es evidente:
Ejemplo #4 Comportamiento Ternario poco obvio
Código PHP:
Ver original
  1. <?php
  2. // a primera vista, lo siguiente parece tener la salida de 'true'
  3. echo (true?'true':false?'t':'f');
  4.  
  5. // sin embargo, la salida real de lo anterior es 't'
  6. // esto se debe a que las expresiones ternarias se evalúan de izquierda a derecha
  7.  
  8. // la siguiente es una versión más obvia del mismo código anterior
  9. echo ((true ? 'true' : false) ? 't' : 'f');
  10.  
  11. // aquí, se puede ver que la primera expresión es evaluada como 'true', que
  12. // a su vez se evalúa como (bool)true, retornando así la rama verdadera de la
  13. // segunda expresión ternaria.
  14. ?>

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.