robot de la enciclopedia para niños

PHP para niños

Enciclopedia para niños
Datos para niños
PHP
PHP-logo.svg
Codigo php.jpg
Desarrollador(es)
PHP Group
https://www.php.net
Información general
Extensiones comunes .php, .phtml, .php3, .php4, .php5, .php7, .phps, .php-s, .pht, .phar
Paradigma Multiparadigma: imperativo, funcional, orientado a objetos, procedural, reflexivo
Apareció en 1995
Diseñado por Rasmus Lerdorf
Última versión estable 8.4.8 (5 de junio de 2025 (1 mes))
Sistema de tipos Dinámico, débil
Implementaciones Motor Zend, HHVM, Phalanger, Quercus, Project Zero, Parrot
Influido por Perl, C, C++, Java, Tcl
Ha influido a Falcon, Hack
Sistema operativo Unix-like, Windows
Licencia Licencia PHP

PHP es un lenguaje de programación muy usado para crear páginas web dinámicas. Fue inventado por Rasmus Lerdorf en 1994. Al principio, PHP significaba Personal Home Page (Página Personal), pero ahora significa PHP: Hypertext Preprocessor, que es un nombre recursivo (se refiere a sí mismo).

El código PHP se procesa en un servidor web. El servidor usa un programa especial llamado intérprete de PHP. Este intérprete ejecuta el código y genera el contenido que ves en tu navegador, como HTML o imágenes. PHP también se puede usar para otras cosas, como crear programas con ventanas o controlar drones.

PHP es un software libre, lo que significa que es gratis y cualquiera puede usarlo y mejorarlo. Funciona en la mayoría de los servidores web y sistemas operativos.

¿Qué es PHP y para qué sirve?

PHP es un lenguaje de programación muy popular que se usa para construir la parte "detrás de escena" de los sitios web. Imagina que una página web tiene una parte que ves (el diseño, las imágenes) y una parte que no ves (cómo funciona, cómo guarda la información). PHP se encarga de esa parte que no ves.

¿Cómo funciona PHP en una página web?

Cuando visitas una página web hecha con PHP, tu navegador le pide al servidor web que le envíe la página. El servidor encuentra el código PHP, lo procesa y crea el contenido final (por ejemplo, una página HTML). Luego, el servidor envía ese contenido a tu navegador para que lo muestre.

¿Dónde se usa PHP hoy en día?

PHP es muy común. Se usa en millones de sitios web y servidores. Aunque han aparecido nuevas tecnologías, PHP sigue siendo muy importante. Por ejemplo, la Wikipedia está hecha con PHP. También se usa en sitios grandes como Facebook y WordPress.

PHP es fácil de aprender para muchos programadores porque se parece a otros lenguajes como C. Esto permite crear aplicaciones complejas sin mucha dificultad.

Historia de PHP

PHP fue creado por Rasmus Lerdorf en 1994. Al principio, era un conjunto de herramientas sencillas para su página personal.

En 1997, dos programadores, Zeev Suraski y Andi Gutmans, mejoraron mucho el lenguaje y lo llamaron PHP: Hypertext Preprocessor. En 1999, crearon el Motor Zend, que es el "corazón" de PHP.

Evolución de las versiones de PHP

  • PHP 4 se lanzó en el año 2000.
  • PHP 5 llegó en 2004 con muchas mejoras, como un mejor soporte para la programación orientada a objetos y una mejor conexión con MySQL.
  • PHP 7 se lanzó en 2015, trayendo grandes mejoras de velocidad.
  • PHP 8 se presentó en 2020 con nuevas características y optimizaciones.

Hoy en día, muchas páginas web siguen usando versiones antiguas de PHP, pero las versiones más recientes ofrecen mejor rendimiento y seguridad.

Tabla de versiones de PHP

Significado
Rojo Versión antigua, sin soporte
Amarillo Con soporte para errores de seguridad
Verde Con soporte para errores generales y de seguridad
Azul Lanzamiento futuro
Rosa Lanzamiento cancelado
Versión Fecha de lanzamiento Fin de soporte Notas
1.0 08-06-1995 Llamada oficialmente «Personal Home Page Tools (PHP Tools)». Es la primera versión en usar el nombre «PHP».
2.0 01-11-1997 Considerada por sus creadores la «herramienta más rápida y sencilla» para crear páginas web dinámicas.
3.0 06-06-1998 20-10-2000 Zeev Suraski y Andi Gutmans reescribieron la base para esta versión.
4.0 22-05-2000 23-01-2001 Se añadió un sistema de parsing de dos fases llamado motor Zend.
4.1 10-12-2001 12-03-2002 Se introducen 'superglobales' ($_GET, $_POST, $_SESSION, etc.)
4.2 22-04-2002 06-09-2002 Se deshabilitan register_globals por defecto. Datos recibidos por la red no son insertados en el espacio de nombres global, cerrando posibles agujeros de seguridad en las aplicaciones.
4.3 27-12-2002 31-03-2005 Se introduce CLI, y CGI.
4.4 11-07-2005 07-08-2008 Se añaden páginas man para phpize y php-config.
5.0 13-07-2004 05-09-2005 Motor Zend II con un nuevo modelo de objetos.
5.1 24-11-2005 24-08-2006 Mejoras de rendimiento con la introducción de variables de compilador para el nuevo motor de PHP.
5.2 02-11-2006 06-01-2011 Actividad extensión de filtro por defecto. Soporte JSON nativo.
5.3 30-06-2009 14-08-2014 Soporte para espacios de nombres, enlace estático en tiempo de ejecución, etiqueta de salto (GOTO limitada), Clausuras nativas, Soporte nativo para archivos PHP (phar), recolección de basura para referencias circulares, soporte mejorado para Windows, sqlite3, mysqlnd como reemplazo a libmysql como biblioteca para extensiones que funcionan con MySQL, fileinfo como reemplazado de mime_magic para mejor soporte MIME, extensión de Internacionalización, y etiqueta ereg obsoleta.
5.4 01-03-2012 15-09-2015 Soporte para Trait y sintaxis abreviada de array. Elementos eliminados: register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister() y session_is_registered(). Servidor web incorporado. Varias mejoras a características existentes y al rendimiento, y requerimientos de memoria menores.
5.5 20-06-2013 20-06-2016 Nuevos generadores para bucles, empty() soporta expresiones. Se pierde el soporte para Windows XP y Windows Server 2003.
5.6 20-08-2014 31-12-2018 Constantes con expresiones escalares, listas de argumentos de longitud variable y exponencial mediante el operador **.
6 El desarrollo de PHP 6 ha sido retrasado porque los desarrolladores decidieron que el enfoque actual para tratar cadenas Unicode no es correcto, y están considerando formas alternas para la siguiente versión. Las mejoras planeadas para PHP 6 fueron añadidas en su lugar en PHP 5.3.0 (Soporte para espacios de nombre, enlace estático en tiempo de ejecución, funciones lambda, clausuras, goto) y 5.4.0 (traits, revinculación de clausura).

Se abandonó la versión 6 de PHP siendo la siguiente versión la 7.

7.0 03-12-2015 03-12-2018 Mejoras de rendimiento , declaración de tipos de retorno en funciones
7.1 01-12-2016 01-12-2019 Tipo de retorno vacío, Clase constante modificadores de visibilidad, Tipos nullable, iterable de tipo seudo, Captura múltiples tipos de excepciones.
7.2 30-11-2017 30-11-2020 Nuevo tipo de retorno «object», integración de Libsodium como una extensión del núcleo
7.3 6-12-2018 6-12-2021 Sintaxis flexible para Nowdoc y Heredoc, soporte para referencias y deconstrucción de arrays con list(), soporte para PCRE2, función hrtime()
7.4 28-11-2019 28-11-2022 PHP 7.4 llegó al final de su vida útil el 28 de noviembre de 2022.
8.0 26-11-2020 26-11-2023 Ingresadas Nuevas características e incremento de rendimiento
8.1 25-11-2021 25-11-2024 Propiedades «readonly», «enums», «fiber» y nuevas sintaxis
8.2 08-12-2022 08-12-2025 Creación de propiedades dinámicas esta desaprobada y es agregado el atributo AllowDynamicProperties
8.3 23-11-2023 23-11-2026 Tipado de constantes, atributo override y nuevos métodos para obtener valores aleatorios.
8.4 21-11-2024 31-12-2026 Limpieza de código obsoleto, y nuevas características como hooks y visibilidad asimétrica
8.5 20-11-2025 31-12-2027

¿Cómo se escribe el código en PHP?

La forma de escribir código en PHP es parecida a la del lenguaje C.

Delimitadores de PHP

El código PHP se escribe entre los símbolos <?php (para empezar) y ?> (para terminar). Esto ayuda a separar el código PHP del resto del contenido, como el HTML. Si un archivo solo tiene código PHP, el símbolo de cierre ?> se puede omitir.

Variables y comentarios

  • Las variables (donde se guarda información) empiezan con el símbolo de dólar ($). No necesitas decir qué tipo de información guardarán.
  • Las variables distinguen entre mayúsculas y minúsculas, pero las funciones no.
  • Puedes escribir comentarios en tu código usando // para una línea o /* */ para varias líneas.

Ejemplos de código básico en PHP

Aquí te mostramos algunos ejemplos sencillos de cómo se ve el código PHP.

Programa "Hola mundo" con PHP dentro de código HTML:

<!DOCTYPE html>
<html lang="es" dir="ltr">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Ejemplo básico PHP</title>
</head>

<body>
  <?php
    echo 'Hola mundo';
  ?>
</body>

</html>

Programa "Hola mundo" con PHP en forma de aplicación completa:

<?php

// Area de cabeceras, constantes e includes (inicialización de la aplicación)
// Encabezado solo para demostración, no es necesario
header('Content-Type: text/html; charset=UTF-8');

$respuesta = '';

// Lógica de la aplicación, como obtener usuario de la sesión, contenido, etc.

// Este código podría venir de una plantilla externa para una fácil reutilización
$respuesta .= '<!DOCTYPE html>';
$respuesta .= '<html lang="es">';
$respuesta .= '';
$respuesta .= '<head>';
$respuesta .= '  <meta charset="UTF-8" />';
$respuesta .= '  <meta name="viewport" content="width=device-width, initial-scale=1.0" />';
$respuesta .= '  <title>Ejemplo básico de PHP</title>';
$respuesta .= '</head>';
$respuesta .= '';
$respuesta .= '<body>';
$respuesta .= '  <h1>Hola mundo!</h1>';
$respuesta .= '</body>';
$respuesta .= '';
$respuesta .= '</html>';

// Envía respuesta
echo $respuesta;

// Notar que no se cierra la "etiqueta" <?php. PHP-FIG recomienda esta práctica en
// archivos que contienen solo código PHP para así no enviar contenido HTML de
// manera accidental.

Programa "Hola mundo" con PHP respondiendo en formato JSON:

<?php

// Archivo respuesta_json.php
// Le comunica al navegador que la respuesta será JSON
header('Content-Type: application/json; charset=UTF-8');

$respuesta = [
    'mensaje' => 'Hola mundo!'
];

echo json_encode($respuesta);

// No se cierra la "etiqueta" <?php ya que el archivo contiene solo código PHP

El lado del cliente que realizará petición al archivo PHP:

<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Ejemplo de respuesta en formato JSON desde PHP</title>
</head>

<body>
    <div>
        <h2>Respuesta en texto plano</h2>
        <pre><code id="respuesta-plana"></code></pre>
    </div>
    <div>
        <h2>Respuesta procesada (campo «mensaje» de la respuesta JSON)</h2>
        <pre><code id="respuesta-procesada"></code></pre>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', () => {
            const contenedorRespuestaPlana = document.querySelector('#respuesta-plana');
            const contenedorRespuestaProcesada = document.querySelector('#respuesta-procesada');

            // Realiza petición asíncrona al archivo de php
            fetch('respuesta_json.php')
                .then(respuesta => respuesta.json()) // Transforma la respuesta a un objeto JSON
                .then(respuestaJson => {
                    // respuestaJson es un objeto con el formato { mensaje: "Hola mundo!" }

                    contenedorRespuestaPlana.innerHTML = JSON.stringify(respuestaJson);
                    contenedorRespuestaProcesada.innerHTML = respuestaJson.mensaje;
                });
                // manejar errores con .catch()
        });
    </script>
</body>

</html>

PHP y las bases de datos

PHP puede conectarse con muchos tipos de bases de datos, como MySQL, PostgreSQL o MongoDB. Esto es muy útil para guardar y recuperar información en sitios web, como los datos de usuarios o productos.

Aquí tienes un ejemplo de cómo PHP puede manejar un inicio de sesión con usuario y contraseña usando MySQL:

<?php

// Conexión a la base de datos local 'sitio'. Normalmente esto vendría de un
// servicio externo que se reutiliza en todo el sitio.
$conexion = new PDO('mysql:host=127.0.0.1;dbname=sitio', 'root', '', [
    // Lanza excepción si ocurre un error, así el gestor de errores tomará las acciones necesarias
    // como mostrar un error 500 o terminar la ejecución del sistema. Nótese que no se utiliza
    // try-catch acá para delegarle la responsabilidad al gestor de errores.
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    // Desactiva emulación de sentencias preparadas (solo las nativas son seguras)
    PDO::ATTR_EMULATE_PREPARES => false,
]);

// Se obtienen los datos enviados por el formulario
// Para la simplicidad de la demostración se utiliza el operador coalesce (??)
$nombre_usuario = trim($_POST['nombre_usuario'] ?? ''); // Se eliminan los espacios al inicio y al final
$contrasena = $_POST['contrasena'] ?? ''; // La contraseña se deja tal cual, sin trim()

// Solo actuar si el formulario ha sido enviado con datos
if (isset($_POST['enviar']) && !empty($nombre_usuario) && !empty($contrasena)) {
    // Consulta para buscar el usuario en la base de datos
    // Se utilizan sentencias preparadas para prevenir inyecciones SQL
    $consulta_usuario = $conexion->prepare('SELECT * FROM usuarios WHERE nombre_usuario = ? LIMIT 1');
    $consulta_usuario->execute([$nombre_usuario]);

    // Verifica si se ha encontrado un usuario
    if ($consulta_usuario->rowCount() > 0) {
        // Obtiene los datos del usuario
        $usuario_encontrado = $consulta_usuario->fetch(PDO::FETCH_ASSOC);

        // Comprobar si la contraseña enviada es correcta
        // Utiliza algoritmos seguros como BCrypt o Argon2i
        if (password_verify($contrasena, $usuario_encontrado['contrasena'])) {
            // Credenciales correctas, iniciar sesión
        } else {
            // Credenciales incorrectas, mostrar mensaje de error
        }
    } else {
        // Nombre de usuario no existe, mostrar mensaje de error

        // Nótese que, por seguridad, aquí y arriba se debe mostrar un error
        // genérico como "Credenciales incorrectas", así de esta forma un posible
        // atacante no sabrá si ha ingresado el nombre de usuario correcto
    }
}

// No se cierra la "etiqueta" <?php ya que el archivo contiene solo código PHP

Ventajas y desafíos de PHP

¿Cuáles son las ventajas de usar PHP?

  • Es ideal para crear aplicaciones web dinámicas que se conectan a bases de datos.
  • Es fácil de aprender, lo que permite a los programadores crear cosas rápidamente.
  • El código PHP no es visible para el navegador, ya que el servidor lo procesa antes de enviar el resultado.
  • Puede conectarse con casi todas las bases de datos populares.
  • Se puede ampliar con módulos (llamados extensiones) para añadir más funciones.
  • Tiene mucha documentación y ayuda disponible en su sitio web oficial.
  • Es gratis y de acceso abierto para todos.
  • Permite usar la programación orientada a objetos, una forma de organizar el código.

¿Qué desafíos presenta PHP?

  • Como el código se interpreta cada vez que se ejecuta, puede ser un poco más lento que otros lenguajes. Sin embargo, esto se puede mejorar con técnicas de almacenamiento temporal.
  • Actualizar un sitio web de una versión antigua de PHP a una nueva puede ser un desafío. A veces, el código antiguo necesita ser modificado para funcionar con las nuevas versiones.

Herramientas para trabajar con PHP

Existen paquetes de software que te ayudan a instalar todo lo necesario para trabajar con PHP en tu computadora.

Archivo:LAMP software bundle
La LAMP incluye PHP (aquí con Squid).
  • XAMPP: Es un paquete de software gratuito que incluye el servidor web Apache, la base de datos MySQL y los intérpretes para PHP y Perl. Funciona en diferentes sistemas operativos como Windows, Linux y macOS. Es fácil de usar y no necesita muchos recursos.
  • LAMP: Es similar a XAMPP, pero está diseñado específicamente para sistemas Linux.
  • WAMP: Es para Windows.
  • MAMP: Es para macOS.
  • UwAmp: Es como WAMP, pero puedes llevarlo y ejecutarlo desde una memoria USB.

Sitios web famosos hechos con PHP

Millones de sitios web usan PHP. Algunos de los más conocidos son:

Véase también

Kids robot.svg En inglés: PHP Facts for Kids

kids search engine
PHP para Niños. Enciclopedia Kiddle.