Desde la versión 7.4 de PHP tenemos un nuevo operador que es el:
??=
al que han dado es muy fácilemente recordable nombre de «Null Coalescing Assignment Operator«.
¿Y qué hace este operador?
Pues funciona así:
$a ??= 'No somos nada';
La variable $a coge el valor ‘No somos nada’ salvo si está definida y tiene un valor distinto de null.
¿Sabes lo que es el reto de PHP?
He creado el PHP Journey, una plataforma para que recibas de forma gratuita un email cada día con una pequeña perla de sabiduría de PHP y una pregunta que deberás responder.
Cada día pones a prueba tus conocimientos y aprendes algo nuevo.
Apúntate aquí:
https://urlantools.urlanheat.com/newsletter/php-journey/subscribe
Ejemplos del operador null coalescing assigment
Si $a no está definida:
$a ??= 'No somos nada'; // Coge el valor 'No somos nada'
Si $a tiene valor nulo coge el valor que le asignamos:
$a = null;
$a ??= 'No somos nada'; // Coge el valor 'No somos nada'
Si $a tiene un valor vacío no se modifica:
$a = '';
$a ??= 'No somos nada'; // Mantiene la cadena vacía ''
O si tiene valor cero:
$a = 0;
$a ??= 'No somos nada'; // Se queda con el 0
Y si tiene cualquier otro valor lo mantiene:
$a = 10;
$a ??= 'No somos nada'; // Se queda con el 10
¿Y para qué vale este operador?
Imagina este array que nos ha llegado de un formulario:
$usuario = ['nombre' => 'Gorka', 'apellido' => 'Urrutia'];
Imagina que cuando rellenan el formulario pueden no seleccionar la edad. Pues harías algo así para asegurarte de que tienes el campo «edad» definido:
$usuario['edad'] = $usuario['edad'] ?? 'Desconocida';
Pues en lugar de eso puedes hacer:
$usuario['edad'] ??= 'Desconocida';