---
title: "PHP 8.4: Un salto evolutivo con nuevas funciones, mayor claridad y mejor rendimiento"
description: "Un repaso a la evolución reciente de PHP. PHP se ha consolidado como el lenguaje de referencia para el desarrollo web backend, impulsando millones de sitios y aplicaciones en todo el mundo. Cada nueva..."
url: https://revistacloud.com/php-8-4/
date: 2025-06-10
modified: 2025-06-10
author: "Antonio"
image: https://revistacloud.com/wp-content/uploads/2025/02/php-programacion-elefante.jpg
categories: ["Guías y recursos"]
tags: ["desarrollo", "PHP", "programación"]
type: post
lang: es
---

# PHP 8.4: Un salto evolutivo con nuevas funciones, mayor claridad y mejor rendimiento

### Un repaso a la evolución reciente de PHP

**PHP** se ha consolidado como el lenguaje de referencia para el desarrollo web backend, impulsando millones de sitios y aplicaciones en todo el mundo. Cada nueva versión aporta mejoras significativas en rendimiento, sintaxis y seguridad. Desde PHP 8.0 —que supuso una revolución con el motor JIT, los tipos de unión y los atributos— hasta PHP 8.4, la evolución ha sido constante y pensada para facilitar la vida al desarrollador, aumentar la seguridad y mantener la relevancia del ecosistema.

#### Principales hitos recientes:

- **PHP 8.0 (2020):** Motor JIT, atributos, tipos de unión, mejoras en match, throw como expresión.
- **PHP 8.1 (2021):** Enumeraciones (enum), propiedades readonly, Fibers para concurrencia, mejoras en rendimiento.
- **PHP 8.2 (2022):** Tipos de lectura-only, constantes readonly, desprecación de dynamic properties, true types.
- **PHP 8.3 (2023):** Tipos para constantes de clase, mejoras en la herencia, nuevas funciones array, rendimiento optimizado.
- **PHP 8.4 (2024):** El enfoque se centra en facilitar aún más el código limpio, la claridad semántica y la seguridad, con nuevas capacidades para trabajar con propiedades, visibilidad, manejo de datos y la API DOM.

---

## ¿Qué novedades aporta PHP 8.4?

### Hooks para propiedades: getters y setters elegantes y nativos

Uno de los avances más notables de PHP 8.4 es la incorporación de **hooks para propiedades**. Ahora es posible definir lógica personalizada cuando se lee o escribe una propiedad, directamente en la declaración, sin necesidad de implementar manualmente los clásicos métodos `getX` o `setX`. Esto mejora la legibilidad, reduce errores y facilita la integración con IDEs y herramientas de análisis.

**Ejemplo antes (PHP <= 8.3):**

```
class Locale {
    private string $codigoPais;

    public function setCodigoPais(string $codigoPais): void {
        $this->codigoPais = strtoupper($codigoPais);
    }
    // ...getter...
}
```

**Ejemplo con PHP 8.4:**

```
class Locale {
    public string $codigoPais {
        set (string $codigoPais) {
            $this->codigoPais = strtoupper($codigoPais);
        }
    }
}
```

Esto permite, además, implementar propiedades calculadas (`computed properties`) y controlar la asignación de valores de manera más segura.

---

### Visibilidad asimétrica: control granular de lectura y escritura

PHP 8.4 introduce la posibilidad de **definir alcances distintos para lectura y escritura en una propiedad pública**. Es decir, una propiedad puede ser pública para lectura pero privada para escritura, evitando la necesidad de escribir métodos repetitivos y mejorando la encapsulación.

```
class Version {
    public private(set) string $version = '8.4';
}
```

Ahora, cualquier parte del código puede leer `$version`, pero solo métodos internos pueden modificarlo.

---

### Nueva API DOM y soporte HTML5 completo

La nueva **API DOM** basada en el espacio de nombres `Dom` y la clase `HTMLDocument` permite trabajar con documentos HTML5 de forma más fiable y estándar, corrigiendo viejos errores y mejorando la interoperabilidad.

```
$dom = Dom\HTMLDocument::createFromString('Ejemplo');
$node = $dom->querySelector('main > article:last-child');
```

---

### Deprecaciones y marcado nativo de métodos obsoletos

Ahora es posible usar el atributo `#[\Deprecated]` para señalar métodos, funciones y constantes de clase que se consideran obsoletos, generando advertencias automáticas y ayudando en la transición del código heredado.

```
class MyClass {
    #[\Deprecated(message: "Usa getVersion en su lugar", since: "8.4")]
    public function getOldVersion() { /* ... */ }
}
```

---

### Mejoras en BCMath y manejo de precisión arbitraria

PHP 8.4 incorpora la clase `BcMath\Number`, permitiendo operaciones matemáticas de alta precisión con una sintaxis más intuitiva y orientada a objetos.

```
use BcMath\Number;

$num1 = new Number('0.12345');
$num2 = new Number('2');
$result = $num1 + $num2; // '2.12345'
```

---

### Nuevas funciones de arrays

Se incorporan utilidades como `array_find`, `array_find_key`, `array_any` y `array_all`, acercando el manejo de arrays en PHP a lo que ofrecen otros lenguajes modernos.

```
$animal = array_find(['perro', 'gato', 'vaca'], fn($v) => str_starts_with($v, 'g')); // 'gato'
```

---

### Más cambios destacados

- **Subclases específicas para PDO:** Mejor tipado y métodos más claros para cada base de datos.
- **Acceso directo a métodos tras instanciar (`new MyClass()->method()` sin paréntesis adicionales).**
- **Nueva implementación JIT más eficiente.**
- **Nuevas funciones de manipulación de cadenas multibyte (mb_trim, mb_ucfirst, etc.).**
- **API de objetos Lazy, mejoras en DateTime, Reflection, y más.**

---

## Comparativa rápida: PHP 8.4 vs versiones anteriores

| Característica | PHP 8.0 | PHP 8.1 | PHP 8.2 | PHP 8.3 | **PHP 8.4** |
| --- | --- | --- | --- | --- | --- |
| Motor JIT | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ Mejorado |
| Enum | ❌ | ✔️ | ✔️ | ✔️ | ✔️ |
| Readonly properties | ❌ | ✔️ | ✔️ | ✔️ | ✔️ |
| Hooks propiedades | ❌ | ❌ | ❌ | ❌ | ✔️ Novedad |
| Visibilidad asimétrica | ❌ | ❌ | ❌ | ❌ | ✔️ Novedad |
| API DOM HTML5 | ❌ | ❌ | ❌ | ❌ | ✔️ Novedad |
| Atributo #[\Deprecated] | ❌ | ❌ | ❌ | ❌ | ✔️ Novedad |
| Nuevas array_*() | ❌ | ❌ | ❌ | ✔️ | ✔️ Mejoradas |
| BCMath orientado objetos | ❌ | ❌ | ❌ | ❌ | ✔️ Novedad |
| Compatibilidad backward | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (con deprecaciones) |

---

## ¿Por qué actualizar a PHP 8.4?

- **Código más limpio y mantenible** gracias a los hooks y la visibilidad asimétrica.
- **Mayor seguridad** con controles de acceso y nuevas funciones de auditoría.
- **Mejor rendimiento** gracias a optimizaciones en JIT y nuevas funciones nativas.
- **Mayor compatibilidad y soporte para estándares modernos** en HTML5, arrays y precisión numérica.
- **Facilidad para el desarrollador** con menos boilerplate, más claridad en errores y advertencias automáticas sobre obsolescencia.

---

### Conclusión

PHP 8.4 consolida la madurez del lenguaje, facilitando la escritura de código más limpio, robusto y seguro. La actualización resulta especialmente atractiva para proyectos nuevos y existentes que busquen aprovechar las últimas tendencias en desarrollo web, mejorar su rendimiento y facilitar la evolución de su base de código.

**La recomendación para equipos técnicos y desarrolladores es clara:** si tu stack lo permite, da el salto a PHP 8.4 y aprovecha su nueva arquitectura y funcionalidades avanzadas.
