Qué es PHP

PHP es un lenguaje de programación dirigido a la creación de páginas web. Es un lenguaje de programación procedural, interpretado y no tipificado, con una sintaxis similar a la del lenguaje C, aunque actualmente puede utilizarse una sintaxis de programación orientada a objetos similar a la de Java.

En esta página se tratan los temas siguientes:

Páginas web, lenguajes de programación y bases de datos

La World Wide Web (o simplemente, la web) fue ideada por Tim Berners Lee en 1990, empezó a funcionar en el CERN en 1991 y se extendió rápidamente por las Universidades del mundo (en aquel entonces Internet era una red a la que sólo tenían acceso entidades gubernamentales, particularmente entidades educativas). En 1992 algunos proveedores comerciales empezaron a dar acceso a particulares y empresas, lo que convirtió la web en una red de comunicación universal que ha transformado nuestras vidas.

En sus primeros años, las páginas web solían ser documentos de texto guardado en algún directorio de un servidor y a las que se accedía mediante los primeros navegadores web. Cada página web que se veía en el navegador correspondía a un fichero en el servidor.

La imagen siguiente ilustra de forma simplificada el esquema de funcionamiento:

Navegador + Servidor + Documento


Este esquema de funcionamiento es suficiente para sitios web pequeños creados por una sola persona, pero en cuanto un sitio web empieza a crecer, empiezan a surgir los problemas. Por ejemplo:

La solución es que las páginas no sean ficheros estáticos guardados en el disco, sino que las páginas se generen automáticamente cuando el usuario las solicite.

Por ejemplo, para resolver el problema de los menús comentado anteriormente, una solución sería que el menú estuviera en un fichero aparte y cuando el usuario solicitara una página, el menú se añadiera al principio de cada página (nota: no me refiero a la composición de páginas mediante frames, una solución desaconsejada hace muchos años, sino a componer la página web a partir de varios ficheros).

Esa generación de las páginas se puede hacer de varias maneras. Una de ellas es recurrir a lenguajes de programación generales o específicos (como PHP). Desde sus inicios, los servidores web permiten recurrir a lenguajes de programación para generar las páginas web.

La imagen siguiente ilustra de forma simplificada el esquema de funcionamiento:

Navegador + Servidor + PHP + Documento

Es importante señalar que el usuario no puede saber si la página web estaba guardada en el disco duro o se ha generado en ese momento, de la misma manera que no puede saber qué lenguaje de programación que ha generado el documento. El navegador recibe el documento en ambos un documento de texto que contiene etiquetas html y lo muestra al usuario.

A veces, el usuario puede suponer que la página que se le está sirviendo se ha generado mediante PHP ya que la dirección de la página termina por .php en vez del habitual .html, aunque no se puede estar seguro de que sea realmente así.


Pero el uso de lenguajes de programación no suele ser suficiente. Si la información está diseminada en multitud de trozos para organizar y acceder fácilmente a toda esa información, es conveniente utilizar algún sistema gestor de bases de datos. Existen muchos sistemas gestores de bases de datos y los lenguajes de programación pueden conectarse a ellas y realizar consultas.

La imagen siguiente ilustra de forma simplificada el esquema de funcionamiento:

Navegador + Servidor + PHP + Gestor de bases de datos + Documento

Como antes, el usuario no puede saber si se ha accedido o no a un sistema gestor de bases de datos. El navegador recibe el documento en ambos un documento de texto que contiene etiquetas html y lo muestra al usuario.

Historia de PHP

En el caso de PHP no hay ningún organismo oficial encargado de la definición del lenguaje PHP (definición que posteriormente distintas empresas implementan en diferentes compiladores o intérpretes), sino que el lenguaje evoluciona a la vez que lo hace el intérprete "oficial" de PHP publicado, desde la versión 4, por la empresa Zend Technologies. Existen otros motores, como HHVM creado por Facebook, pero son minoritarios. Aunque el lenguaje y el intérprete son cosas conceptualmente distintas, es habitual referirse a ambos como PHP.

PHP (el intérprete) ha sido publicado siempre como software libre, con una licencia llamada licencia PHP. Esta licencia es una licencia libre sin copyleft. Como la licencia impone restricciones al uso del término PHP en productos derivados, esta licencia es incompatible con la licencia GPL, por lo que la Free Software Foundation recomienda que sólo se utilice para programar extensiones del propio PHP.


PHP fue creado por Rasmus Lerdorf en junio de 1995. Las siglas PHP significaban entonces Personal Home Page y hacían referencia a que era un lenguaje diseñado para facilitar la generación de páginas web, en primer lugar en el sitio web personal de Rasmus Lerdorf y rápidamente en muchos sitios. Desde entonces, PHP no ha dejado de evolucionar, proporcionando nuevas características.

En los dibujos siguientes, las versiones obsoletas de PHP se muestran en color rojo.

Versiones de PHP hasta 2005 PHP 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 1.0 2.0 3.0 4.0 4.1 4.2 4.3 5.0

En noviembre de 1997 Rasmus Lerdorf publicó una segunda versión del lenguaje, PHP 2.

En junio de 1998 se publicó PHP 3. Esta versión fue creada por Zeev Suraski y Andi Gutmans, que desde entonces dirigen el desarrollo de PHP (con la colaboración de Lerdorf). A partir de esta versión PHP significa PHP: Hypertext Preprocessor (añadiéndose a la lista de acrónimos recursivos como GNU, Lame, Wine, RPM, etc.). La característica más decisiva de esta versión fue la mejora de la extensibilidad del lenguaje, permitiendo que muchos programadores aportaran nuevos módulos, pero esta versión también simplificó la sintaxis del lenguaje e introdujo la posibilidad de utilizar una sintaxis orientada a objetos.

En 1999 Zeev Suraski y Andi Gutmans crearon la empresa Zend Technologies, que desarrolla productos basados en PHP (servidores, editores, etc.).

En mayo de 2000 se publicó PHP 4, que incluía un nuevo motor llamado Zend Engine. Esta versión era bastante más rápida que la anterior y añade nuevas características como las sesiones.

En julio de 2004 se publicó PHP 5, que incluía un nuevo motor llamado Zend Engine 2. La característica más importante de esta versión fue la mejora de la programación orientada a objetos.

Versiones de PHP entre 2005 y 2015 PHP 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 4.4 5.1 5.2 5.3 5.4 5.5 5.6

La siguiente versión prevista, que se tendría que haber publicado como PHP 6, se fijó el objetivo de dar a PHP soporte completo de Unicode, el juego de caracteres universal. Pero ese objetivo resultó ser mucho más difícil de conseguir de lo esperado y en 2010 se tiró la toalla.

Desde 2012, se fueron publicando anualmente versiones 5.X que fueron introduciendo novedades en el lenguaje (5.3 en junio de 2009, 5.4 en marzo de 2012, 5.5 en junio de 2013 y 5.6 en agosto de 2014).

En enero de 2014 se inició el desarrollo de PHP-NG, un nuevo motor de PHP enfocado a aumentar la velocidad del lenguaje. Los resultados fueron tan prometedores que en agosto de 2014 PHP-NG se convirtió en la base de la siguiente versión de PHP, que se decidió llamar PHP 7 para evitar la confusión con la frustrada versión PHP 6. PHP 7 se publicó en diciembre de 2015 y el motor PHP-NG se rebautizó como Zend Engine 3.

En su momento se propuso publicar una versión PHP 5.7, de transición entre PHP 5.6 y PHP 7, pero la propuesta fue descartada.

Versiones de PHP desde 2015 PHP 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 8.4

En octubre de 2015, la empresa RogueWave Software compró Zend, pero en un primer momento la mantuvo como empresa independiente y esta compra no afectó al desarrollo de PHP. Zeev Suraski siguió trabajando en Zend, pero Andi Gutmans abandonó la empresa para pasar a Amazon Web Services. En octubre de 2018, Suraski anunció que RogueWave iba a dejar de desarrollar Zend Engine y Zend Framework y por tanto Suraski y su equipo abandonaría la empresa. En enero de 2019 Rogue Software fue comprada por Perforce Software, una empresa que comercializa soluciones de desarrollo de software y que no ha anunciado planes planes específicos para Zend. Por su parte, Zend Framework encontró cobijo en la Linux Foundation y ha cambiado su nombre a Laminas.

En cualquier caso, la cadencia anual se ha mantenido desde 2012, publicándose nuevas versiones en noviembre/diciembre desde 2015. En noviembre de 2020 se publicó PHP 8.0, con importantes novedades en el lenguaje. La última versión, PHP 8.3, se publicó en noviembre de 2023. La fecha prevista de publicación de PHP 8.4 es el 21 de noviembre de 2024.

Durante el período de mantenimiento de una versión de PHP, se publican mensualmente actualizaciones de seguridad (que se numeran con una tercera cifra: 5.6.X, 7.0.X, 7.1.X, 7.2.X, etc.). PHP 5.6, por ser la última versión 5, se mantuvo hasta el 31 de diciembre de 2018, pero a partir de PHP 7.0, las versiones se mantienen solamente durante tres años a partir de su publicación. Así, PHP 8.0 dejó de mantenerse en noviembre de 2023.

Actualmente (noviembre de 2023), el desarrollo de PHP lo siguen llevando a cabo los miembros del The PHP Group, pero ya sin la vinculación directa de ninguna empresa. Por desgracia, en noviembre de 2021 el principal programador de PHP en los últimos años, Nikita Popov, anunció su retirada para trabajar en el compilador LLVM. Esa decisión precipitó seguramente el anuncio de la creación de la PHP Foundation, para canalizar las inversiones necesarias para el desarrollo futuro de PHP. En marzo de 2022 la PHP Foundation empezó a pagar a seis programadores para trabajar a tiempo parcial en PHP y en abril puso en marcha el sitio web de la PHP Foundation.


Desde sus inicios, PHP ha sido posiblemente el lenguaje más utilizado en entornos de desarrollo web, y desde 2001 está situado en el Top 10 del índice Tiobe de lenguajes de programación.

Para construir sitios web profesionales y no tener que escribir todo desde cero, se suelen utilizar frameworks de programación en PHP o, si no se quiere programar, se suelen utilizar CMS (Content Management System, Sistema de gestión de contenidos). Muchos de los CMS más populares están escritos en PHP.


Estadísticas de uso de versiones de PHP en packagist: PHP Versions Stats - 2018.1 Edition (mayo de 2018) - PHP Versions Stats - 2021.1 Edition (mayo de 2021) - Estadísticas de los últimos seis meses

Críticas a PHP

Como cualquier lenguaje de programación, es fácil encontrar en la web opiniones muy críticas hacia PHP, sobre todo en referencia a la seguridad. Al leer estas críticas hay que tener en cuenta que:

En la lección de documentación se incluyen referencias a críticas razonadas a PHP.

Palabras reservadas (keywords)

Las palabras reservadas (keywords) de un lenguaje de programación son las palabras propias del lenguaje. En general, estas palabras no se pueden utilizar para denominar a los elementos que puede crear el usuario (variables, funciones, clases, etc.). Los lenguajes de programación suelen tener pocas palabras reservadas y la mayoría de los programas utiliza un número muy reducido.

Las palabras reservadas de PHP son las siguientes (se han marcado en negrita las que se utilizan en este curso):

__halt_compiler() abstract and array() as break callable (PHP 5.4) case catch class clone const continue declare default die() do echo else elseif empty() enddeclare endfor endforeach endif endswitch endwhile eval() exit() extends final finally (PHP 5.5) fn (PHP 7.4) for foreach function global goto (PHP 5.3) if implements include include_once instanceof insteadof (PHP 5.4) interface isset() list() match (php 8.0) namespace (PHP 5.3) new or print private protected public readonly (PHP 8.1) require require_once return static switch throw trait (PHP 5.4) try unset() use var while xor yield (PHP 5.5) yield from (PHP 5.5)