Foros del Web » Programando para Internet » PHP »

// Lo anterior es idéntico a esta sentencia if/else

Estas en el tema de // Lo anterior es idéntico a esta sentencia if/else en el foro de PHP en Foros del Web. En el ejemplo de http://php.net/manual/es/language.op...arison.ternary nos dicen: "// Lo anterior es idéntico a esta sentencia if/else" Mi pregunta es si es posible utilizando ESE ternario, ...
  #1 (permalink)  
Antiguo 16/01/2014, 16:31
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
// Lo anterior es idéntico a esta sentencia if/else

En el ejemplo de
http://php.net/manual/es/language.op...arison.ternary
nos dicen:

"// Lo anterior es idéntico a esta sentencia if/else"

Mi pregunta es si es posible utilizando ESE ternario,
obtener un

ELSEIF...

???

Es decir, pasar ésto:
Código PHP:
if(!empty($A)) echo $A;
elseif(!empty(
$B)) echo $B;
elseif(!empty(
$C)) echo $C;
else echo 
'N/A'
a validaciones con operador ternario.


Gracias
  #2 (permalink)  
Antiguo 16/01/2014, 16:37
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 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.
  #3 (permalink)  
Antiguo 16/01/2014, 16:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: // Lo anterior es idéntico a esta sentencia if/else

Cita:
Iniciado por jonni09lo Ver Mensaje
En el manual de PHP dice que si se puede
Grácias por tu tiempo jonni09lo.

Sí, allí díce que se puede hacer un IF...ELSE...

Y ése es el ejemplo.

Pero yo pregúnto si puede hacerse un ELSEIF...
  #4 (permalink)  
Antiguo 16/01/2014, 16:45
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: // Lo anterior es idéntico a esta sentencia if/else

no notas que el segundo ejemplo es un elseif? incluso yo para probar he hecho

Código HTML:
Ver original
  1. echo (isset($var))? 'isset var  : ( (isset($var2))? 'isset var2' : 'no isset vars' );

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 16/01/2014, 16:58
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: // Lo anterior es idéntico a esta sentencia if/else

Cita:
Iniciado por jonni09lo Ver Mensaje
no notas que el segundo ejemplo es un elseif?
Leyendolo NO.
Túve que recibir tu "cariñoso" regaño y CORRERLO para poder "VERLO".

Muchas gracia spor tu ayuda.

Me há quedado así:

Código PHP:
$A='a';
//$B='b';
$C='c';
echo !empty(
$A)? $A : (!empty($B)? $B : (!empty($C) ? $C 'N/A')); 
  #6 (permalink)  
Antiguo 16/01/2014, 17:02
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: // Lo anterior es idéntico a esta sentencia if/else

Cita:
Iniciado por Anarko Ver Mensaje
Leyendolo NO.
Túve que recibir tu "cariñoso" regaño y CORRERLO para poder "VERLO".
Eso sonó sarcástico

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 16/01/2014, 17:15
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: // Lo anterior es idéntico a esta sentencia if/else

Cita:
Iniciado por jonni09lo Ver Mensaje
Eso sonó sarcástico
Para náda amigo.

Tu ayuda ha sido BIENVENIDA !

:)

Etiquetas: sentencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.