Versiones
Las versiones de PHP son las siguientes:
| Versión | Fecha de Publicación |
|---|---|
| PHP 1.0 | junio de 1995 |
| PHP 2.0 | noviembre de 1997 |
| PHP 3.0 | unio de 1998 |
| PHP 4.0 | mayo de 2000 |
| PHP 5.0 | julio de 2004 |
| PHP 7.0 | diciembre de 2015 |
| PHP 8.0 | noviembre de 2020 |
| PHP 8.1 | noviembre de 2021 |
| PHP 8.2 | diciembre de 2022 |
| PHP 8.3 | noviembre de 2023 |
| PHP 8.4 | noviembre de 2024 |
| PHP 8.5 | noviembre de 2025 |
Estas versiones reflejan la evolución del lenguaje, desde sus primeras implementaciones hasta las más recientes, con mejoras sustanciales en rendimiento, seguridad y nuevas características.
Novedades en las últimas versiones de PHP 8
PHP 8.4
PHP 8.4 introdujo varias mejoras clave:
- Property hooks → lógica al leer/escribir propiedades.
- Visibilidad asimétrica en propiedades (lectura y escritura con niveles distintos).
- API orientada a objetos para BCMath con números arbitrarios.
- Nuevas funciones de arrays:
array_find,array_find_key,array_any,array_all. - Lazy objects para inicialización diferida.
- Mejoras en DateTime: microsegundos y creación desde timestamp.
- Funciones multibyte nuevas:
mb_trim,mb_ltrim,mb_rtrim,mb_ucfirst,mb_lcfirst. - PDO con subclases específicas por driver (
Pdo\MySql,Pdo\Pgsql, etc.). - API DOM modernizada con
querySelectory soporte HTML5. - Sintaxis simplificada:
new Foo()->method()sin paréntesis extra. - Mejoras de rendimiento y dependencias: JIT, PCRE, OpenSSL, sodium.
Cambios importantes / deprecaciones:
- Extensiones
IMAP,OCI8,PDO_OCIypspellpasan a PECL. - Deprecado el uso implícito de parámetros nulos.
- Deprecado usar
_como nombre de clase. - Cambios en funciones (ej.
round()ahora lanzaValueErroren modos inválidos).
PHP 8.3
PHP 8.3 introdujo varias novedades:
- Typed class constants → constantes de clase con tipos (
public const string NAME = "X";). - Dynamic class constant fetch → acceso dinámico a constantes de clase (
$class::{$const}). json_validate()→ función nativa para validar JSON rápidamente.- Random extension mejorada → nuevas clases (
Random\Randomizer,Random\Engine\Mt19937, etc.) con API orientada a objetos y más segura. - Atributo
#[\Override]→ marca métodos que sobrescriben a la clase padre, con chequeo en compilación. - Constantes de clase
abstractyfinal→ control más fino sobre su herencia y redefinición. - Herencia de propiedades
readonly→ ahora funcionan correctamente en clases hijas. - Nuevas funciones en arrays y
class_meth()con mejoras de usabilidad. - Mejoras de rendimiento en JIT y gestión de memoria.
Cambios importantes / deprecaciones:
- Operadores lógicos
||y&&deprecados en expresiones constantes (usaror/anden su lugar). - Deprecado el uso de
get_class()yget_parent_class()sin argumentos. - Deprecado pasar
nulla parámetros no-nullable en varias funciones internas. - Deprecado el uso dinámico de constantes heredadas sin contexto claro.
- Deprecado el acceso dinámico a propiedades no definidas en clases con
readonly. - Cambios en SQLite3: errores más estrictos al trabajar con resultados.
- Deprecadas varias funciones antiguas en
GD,LDAPy otras extensiones.
Versiones anteriores
Comparando las nuevas versiones con versiones anteriores, PHP 5 trajo mejoras como la introducción de programación orientada a objetos y excepciones, mientras que PHP 7 fue revolucionario por su aumento de rendimiento y la inclusión del sistema de tipos escalar. PHP 8.0 introdujo las Just-In-Time (JIT) y los atributos, y PHP 8.1 añadió fibers y readonly. Las últimas versiones de PHP 8 refinan estas innovaciones, enfocándose en mayor seguridad, eficiencia y nuevas funcionalidades orientadas a un código más robusto.