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;
}