?? y ?: en PHP

Desde la versión 7 de PHP han surgido estos dos nuevos operadores condicionales que vienen a simplicar el uso del archi conocido operador ternario condicional «condición?true:false». ¡Eh, cómo se te queda el cuerpo!

?: (Elvis Operator)

Se le llama así por su «parecido», como si fuera un emoticón, con el peinado del cantante de rock misisipiano. Este operador sí que surge antes, desde la versión 5.3. Su uso es como sigue:

expresión1 ?: expresión2;

Lo que indica es que devuelve la expresión1 si y solo si es verdadero; en caso contrario devuelve la expresión2. Su equivalente con el condicional de siempre sería así:

expresión1 ? expresión1 : expresión2;

Y para los más despistados, este condicional en línea equivale a:

if (expresión1) {
  return expresión1;
} else {
  return expresión2;
}

?? (Null Coalescing Operator)

Este sí que ya es novedad en la versión 7 de PHP. Su es el siguiente:

expresión1 ?? expresión2;

Lo que hace es devolver la expresión1 si existe y no es nulo; de otra manera devuelve la expresión2. Su equivalente en la estructura condicional es:

if (isset($variable1)) {
  return $variable1;
} else {
  return $variable2;
}

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.