PHP 7.4: Novedades
La siguiente gran versión de PHP es inminente y estos son los cambios más destacados que podremos aprovechar desde ya.

El desarrollo de PHP no para y las versiones nuevas se suceden una tras otra. La siguiente, la versión 7.4, se espera para dentro de unos pocos días ─28 de noviembre─ y ya está la lista de cambios al completo.
Entre las novedades destacan las siguientes:
Novedades incluidas en PHP 7.4
Arrow functions
Al fin llegan a PHP las short functions o arrow functions. Estos básicamente funcionan como los closures aunque tienen algunas peculiaridades.
$factor = 2;
// Antes de PHP 7.4
array_map(function($n) use ($factor) {
return $n * $factor;
}, [1, 2, 3, 4]);
// Usando arrow functions
array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
Como vemos, las arrow function no solo son más cortas y legibles sino que además nos permiten acceder a las variables presentes en ejecución sin tener que pasarlas una a una por el use de la función.
Propiedades de clases tipadas
El tipado en PHP sigue extendiéndose y ahora llega a las propiedades de las clases. A partir de esta versión podremos hacer cosas como las siguientes:
class User {
public int $id;
public string $name;
}
Estos son los tipos disponibles para las propiedades:
- Int
- Float
- String
- Iterable
- Array
- Object
- Self
- Parent
- Bool
Básicamente son todos los tipos disponibles hasta ahora a excepción del tipo callable (funciones) y el tipo void.
Operador de asignación nulo
El operador de "coalescencia nula" o null coalescing operator aparece en PHP 7.0 y ahora se extiende con opciones de asignación.
// PHP 7.4
// $name cogerá el valor "Víctor" si, llegados a este punto, su valor es
// nulo o no esta seteado.
$name ??= "Víctor";
// Versiones anteriores
$name = isset($name) ? $name : "Víctor";
Operador para desempacar arrays
Este operador lleva presente en PHP un par de versiones pero, hasta ahora, solo podíamos usarlo en métodos de las funciones. En esta versión se extiende a los arrays.
$a = [2, 3];
$b = [1, ...$a, 4, 5, 6];
// $b = [1, 2, 3, 4, 5, 6]
Barra baja para formatear números
PHP acepta algunos caracteres no numéricos a la hora de formatear un número y ahora se extiende añadiendo la barra baja ( _ ). Los siguientes ejemplo son números válidos en la versión 7.4 y serían errores de tipado en versiones anteriores.
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
Serialización de objetos personalizada
Esto es una pequeña maravilla que no puede pasar desapercibida.
En esta versión se incorporan dos métodos mágicos para extender y personalizar la serialización y deserialización de nuestros objetos.
<?php
// Devuelve una representación en array de este objeto
public function __serialize(): array;
// A partir de un array, recrea el objeto
public function __unserialize(array $data): void;
Más novedades
En el sitio oficial de PHP puedes encontrar la lista completa de cambios que introduce esta nueva versión del lenguaje.