PHP comenzó como un pequeño proyecto de código abierto que evolucionó gradualmente a medida que más y más personas descubrían lo útil que era. Rasmus Lerdorf lanzó la primera versión de PHP en 1994. En ese momento, PHP significaba Página de inicio personal, ya que lo usaba para mantener su página de inicio personal. Más tarde, agregó soporte para bases de datos y lo llamó «Personal Home Page/Forms Interpreter» o PHP/FI, que podría usarse para construir aplicaciones web simples y dinámicas.

  • Zeev Suraski y Andi Gutmans reescribieron el analizador sintáctico en 1997 y formaron la base de PHP 3. El nombre del lenguaje también se cambió al acrónimo recursivo PHP: Hypertext Preprocessor. También son los autores de Zend Engine, un compilador y entorno de ejecución para PHP. El PHP 4 impulsado por Zend Engine fue lanzado en mayo de 2000.
  • PHP 5 fue lanzado en 2004, que incluía muchas características nuevas, como el soporte de POO, los objetos de datos PHP (PDO) y numerosas mejoras de rendimiento.
  • PHP 7, es una nueva versión principal de PHP que se desarrolló en 2015. Incluía nuevas características del lenguaje, siendo la más notable la introducción de declaraciones de tipo de retorno para funciones que complementan las declaraciones de tipo de parámetro existentes, y soporte para los tipos escalares (entero, flotante, cadena y booleano) en las declaraciones de tipo de parámetro y devuelto.

Nuevas características en PHP 8

PHP 8 es la última versión principal, lanzada en noviembre de 2020. Algunas de las nuevas características y cambios notables incluyen:

Compilación Just-In-Time (JIT)

El compilador JIT de PHP 8 proporciona mejoras sustanciales en el rendimiento de las operaciones de tipo matemático que para los casos de uso comunes de desarrollo web. El compilador JIT proporciona el potencial futuro para mover algo de código de C a PHP.

El «match: Expresión»

La expresión «match» recientemente introducida es más compacta que una instrucción switch. Dado que match es una expresión, su resultado se puede asignar a una variable o devolver desde una función.

PHP 8 – Cambios de tipo y adiciones

PHP 8 introdujo tipos de unión, un nuevo tipo de retorno estático y un nuevo tipo mixto. PHP 8 también proporcionó atributos (similares a las «anotaciones» en otros lenguajes de programación) que ayudan a agregar metadatos a las clases de PHP.

Además, ha habido muchos cambios y adiciones a la biblioteca estándar de PHP. PHP 8.2.9 es la última versión estable disponible.

Los hitos importantes en el historial de lanzamientos de PHP se resumen en la siguiente tabla:

VersiónDescripción
Versión 1.0
(8 de junio de 1995)
Oficialmente llamado «Personal Home Page Tools (PHP Tools)». Este es el primer uso del nombre «PHP».
Versión 2.0
(1º de noviembre de 1997)
Oficialmente llamado «PHP/FI 2.0». Esta es la primera versión que realmente podría caracterizarse como PHP, siendo un lenguaje independiente con muchas características que han perdurado hasta el día de hoy.
Versión 3.0
(6 de junio de 1998)
El desarrollo pasa de una persona a varios desarrolladores.Zeev Suraski y Andi Gutmans reescribieron la base de esta versión.
Versión 4.0
(22 de mayo de 2000)
Se ha añadido un sistema de análisis de etiquetas de dos etapas más avanzado llamado motor Zend.
Versión 5.0
(13 de julio de 2004)
Zend Engine II con un nuevo modelo de objetos.
Versión 5.1
(24 de noviembre de 2005)
Mejoras de rendimiento con la introducción de variables de compilador en PHP Engine rediseñado.Se agregaron objetos de datos PHP (PDO) como una interfaz consistente para acceder a bases de datos.
Versión 6.x
No publicado
Versión abandonada de PHP que planeaba incluir soporte nativo para Unicode.
Versión 7.0
(3 de diciembre de 2015)
Zend Engine 3 ,Sintaxis variable uniforme,Se ha añadido closure:call(),?? (coalesce nulo),Declaraciones de tipo de valor devuelto,Declaraciones de tipo escalar,<=> operador de comparación de tres vías «nave espacial»,Clases anónimas
Versión 7.3
(6 de diciembre de 2018)
Sintaxis flexible de Heredoc y Nowdoc
Versión 8.0
(26 de noviembre de 2020)
Compilación Just-In-Time (JIT),Matrices que comienzan con un índice negativo,TypeError en operadores aritméticos/bit a bit no válidos,Ajustes en la sintaxis de las variables,AtributosArgumentos con nombre,Expresión de coincidencia,Tipos de unión, Tipo mixto,Tipo de valor devuelto estático