Con la nueva versión 7 de PHP han llegado algunas cosas que a simple vista pueden sonar raro y otras veces preguntarte pero esto que es. Han añadido exactamente dos operadores: ?? y <=>.
El operador ?? ha sido llamado en la web que describe las nuevas características de PHP 7 como «operador de fusión de null», en C# se le puede conocer como operador de uso combinado de null, aunque supongo que todo dependerá de la traducción y la costumbre. En PHP puede ocurrir que tengas que comprobar el valor de una variable y que esta no exista, sobretodo con las $_GET y las $_POST, esto obliga a utilizar la función isset(), que comprueba si una variable existe y no es null, antes de hacer otras comprobaciones y usos. El operador ?? se puede utilizar como operador ternario junto con isset():
// Con isset() $existe = isset($_POST['nombre']) ? $_POST['nombre'] : 'Anonimo'; // Con ?? $existe = $_POST['nombre'] ?? 'Anonimo';
Con este operador nos ahorramos repetir dos veces la variable a comprobar, además del propio isset().
El otro operador añadido es <=>, el cuál ha sido bautizado como «el operador nave espacial». Yo no apostaría porque se le quede este nombre para siempre, mejor platillo volante u ovni, a veces las traducciones dan resultados que aunque son teóricamente correctos después no acaban de quedar bien. A lo que iba, este operador sirve para comparar dos expresiones y devolver -1, 0 o 1 según sea la primera expresión menor, igual o mayor que la segunda expresión. Esto añade una excepción a los demás operadores típicos de comparación que siempre devolverán true o false:
1 <=> 2; // -1 1 <=> 1; // 0 2 <=> 1; // 1
Resumiendo, con los dos nuevos operadores se ha buscado simplificar el código y ahorrar caracteres, lo cuál puede venir muy bien en según que circunstancias. En mi opinión me parece que han acertado con ??, pero no con <=>. No me acaba de convencer ya que después de conseguir el resultado (-1, 0, 1) hay que añadir más if‘s y algún que otro else o switch para tratarlo, a no ser que sólo se necesite detectar sólo una de las tres opciones. Si se quieren tratar las tres posibilidades habrá que escribir igual o más código.