PHP: If else abreviado con el operador ternario ?: – Código Naranja

El operador ternario es una forma abreviada de la sentencia if else que usamos para las decisiones en PHP (y en otros lenguajes de programación), usarla nos ayuda a crear código más limpio y fácil de entender y además nos ayuda a escribir código más rápido por que hay menos caracteres que escribir.

Para entenderlo veamos primero la versión larga con un ejemplo en el que imprimimos en pantalla un mensaje con un valor predeterminado en caso de que la variable este vacía:

<?php
$usuario ="";

$msg = 'Bienvenido: ';
if ($usuario == '')
{
  $msg .= 'Invitado';
}
else {
  $msg .= $usuario;
}
echo $msg;
?>

Ahora veamos la versión abreviada:

<?php
$usuario ="";

$msg = 'Bienvenido: ' . ($usuario==''?'Invitado':$usuario);
echo $msg;
?>

Se ve mucho mejor ¿cierto?, pero ahora voy a explicarte todo esto de forma muy sencilla, el operador ternario trabaja de esta forma:

Operador ternario IF en php
Operador ternario en PHP

Se llama ternario porque consta de 3 partes, la primera es la condición, la segunda el valor que regresa si la condición es verdadera y el tercero es el valor que retorna si la condición es false. Ambos valores para falso y verdadero se separan entre ellos con un signo : mientras en el signo ? se usa para separar la condición de los posibles valores: falso y verdadero. Muy sencillo.

Algunas consideraciones

El operador ternario se usa para regresar un valor para cuando la condición es falsa o verdadera, pero no se puede usar para ejecutar sentencias, a diferencia de la instrucción if else. Es debido a que se diseñó para abreviar código, pero si ingresas sentencias, entonces el código sería demasiado grande para comprenderlo en una sola línea.

Esto nos lleva a la segunda consideración, utiliza este operador si los valores que vas a regresar son cortos, si usas valores demasiado largos, el código se vuelve muy confuso. Así que, trata de mantener todo el código en una sola línea corta.



2 pensiamientos en “PHP: If else abreviado con el operador ternario ?:

  • Anders

    En lo personal, y basado en las opiniones de varios gurues de estilo, usar este operador no es recomendable, porque lejos de facilitar la lectura del código, la complica, hace el código más críptico.
    Saludos y felicidades por tu excelente blog.

    Responder
    • lcruz

      Gracias por tu comentario, y tienes razón que al inicio puede ser confuso. Hay muchas personas que lo usan asi que tambien es bueno conocerlo y entenderlo para cuando leas código de otros. Saludos!

      Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *