Saltar al contenido
introduccion.php · devschool

¿Qué es PHP?

Lección 1 de 26 · 11 min de lectura · Actualizado el

En esta lección
  1. Qué es PHP
  2. Un lenguaje de servidor
  3. PHP genera HTML
  4. Qué puedes hacer con PHP
  5. Dónde se usa PHP
  6. PHP frente a JavaScript
  7. Versiones de PHP
  8. Tu primer script
  9. Cómo se aprende PHP en este curso
  10. Errores frecuentes
  11. Resumen

PHP es un lenguaje de programación pensado para crear páginas web dinámicas: páginas cuyo contenido cambia según quién las visita, qué ha escrito en un formulario o qué hay guardado en una base de datos. En esta lección vas a entender dónde se ejecuta PHP, qué papel juega frente al navegador, para qué se usa hoy en día y cómo es un primer script. En la siguiente lección lo instalarás en tu ordenador.

Qué es PHP

El nombre es un acrónimo recursivo: PHP: Hypertext Preprocessor (“preprocesador de hipertexto”). Lo creó Rasmus Lerdorf en 1994 como un conjunto de pequeñas herramientas para su web personal y, con los años, se convirtió en un lenguaje completo.

Sus características principales:

  • Es un lenguaje de servidor (server-side): se ejecuta en el ordenador que aloja la web, no en el del visitante.
  • Es interpretado: no hay que compilar nada. Escribes un archivo .php y el intérprete de PHP lo lee y lo ejecuta cada vez que alguien lo pide.
  • Es de tipado dinámico: no tienes que declarar el tipo de cada variable, aunque desde PHP 7 y 8 puedes (y conviene) indicar tipos en las funciones.
  • Se puede mezclar con HTML en el mismo archivo, lo que lo hace muy directo para generar páginas.
  • Es gratuito y de código abierto, y lo ofrece prácticamente cualquier hosting, incluso los más baratos.

Un lenguaje de servidor

Para entender PHP tienes que tener claro qué pasa cuando visitas una web. Hay dos protagonistas:

  • El cliente: tu navegador (Chrome, Firefox, Safari…). Pide páginas y las muestra.
  • El servidor: un ordenador conectado a Internet que guarda la web y responde a las peticiones. Lleva instalado un servidor web (normalmente Apache o Nginx) y el intérprete de PHP.

Si quieres repasar cómo viaja una petición por la red, lo tienes en Cómo funciona la web. Con PHP, el recorrido es este:

  NAVEGADOR (cliente)                         SERVIDOR
 ┌───────────────────┐                  ┌──────────────────────────┐
 │                   │ 1. Pide          │  Servidor web (Apache)   │
 │  Escribes la URL  │ ───────────────> │          │               │
 │  /tienda.php      │  GET /tienda.php │          v               │
 │                   │                  │  2. Intérprete de PHP    │
 │                   │                  │     ejecuta tienda.php   │
 │                   │                  │     (consulta la base    │
 │                   │                  │      de datos, calcula)  │
 │                   │ 3. Responde      │          │               │
 │  4. Muestra el    │ <─────────────── │     genera HTML          │
 │     HTML recibido │   solo HTML      │                          │
 └───────────────────┘                  └──────────────────────────┘
  1. El navegador pide tienda.php al servidor.
  2. El servidor ve que es un archivo .php y se lo pasa al intérprete, que ejecuta el código: lee productos de la base de datos, calcula precios, comprueba si has iniciado sesión…
  3. El resultado de esa ejecución es HTML normal, que el servidor envía al navegador.
  4. El navegador muestra ese HTML. Nunca recibe el código PHP.

Esto tiene una consecuencia muy importante: el visitante no puede ver tu código PHP. Si pulsa “Ver código fuente” en el navegador, solo verá el HTML generado. Por eso en PHP puedes guardar contraseñas de la base de datos o claves privadas, cosa que jamás harías en JavaScript del navegador.

PHP genera HTML

La forma más sencilla de verlo es con un ejemplo. Este archivo, saludo.php, mezcla HTML con un poco de PHP:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Saludo</title>
</head>
<body>
    <?php $socia = "Lucía"; ?>
    <h1>Hola, <?= $socia ?></h1>
    <p>Tienes <?= 3 * 4 ?> clases reservadas este mes.</p>
</body>
</html>

Todo lo que está entre <?php y ?> es código PHP; el resto es HTML que se envía tal cual. <?= ... ?> es una forma corta de imprimir un valor. Cuando el servidor ejecuta el archivo, el navegador recibe esto:

Resultado:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Saludo</title>
</head>
<body>
        <h1>Hola, Lucía</h1>
    <p>Tienes 12 clases reservadas este mes.</p>
</body>
</html>

Ni rastro de $socia ni de 3 * 4: el navegador recibe ya el nombre y el resultado de la multiplicación. Ahora imagina que el nombre sale de una base de datos con 2.000 socios de un gimnasio: con un único archivo PHP generas una página distinta para cada uno. Eso es una web dinámica. Una web estática, en cambio, son archivos HTML fijos que se envían siempre igual.

Verás las etiquetas <?php, ?> y <?= con detalle en Sintaxis y echo.

Qué puedes hacer con PHP

PHP tiene funciones integradas para casi todo lo que necesita una web:

  • Procesar formularios: recibir los datos de un registro, un pedido o un buscador.
  • Trabajar con bases de datos como MySQL o MariaDB: guardar usuarios, productos, reservas…
  • Sesiones y cookies: recordar quién ha iniciado sesión o qué hay en el carrito.
  • Leer y escribir archivos, y gestionar las imágenes que suben los usuarios.
  • Enviar correos, generar PDF, redimensionar imágenes.
  • Crear APIs que devuelven JSON para una aplicación JavaScript o móvil.

Todo esto lo verás a lo largo del curso, empezando por formularios y terminando con MySQL con PDO y un proyecto final.

Dónde se usa PHP

PHP es, con diferencia, el lenguaje de servidor más extendido en la web. Según los estudios de W3Techs, lo usan alrededor de tres de cada cuatro webs cuyo lenguaje de servidor se conoce. Algunos ejemplos:

  • WordPress: el gestor de contenidos con el que se hacen más del 40 % de las webs del mundo está escrito en PHP. Si algún día trabajas con temas o plugins de WordPress, escribirás PHP.
  • Laravel y Symfony: los dos frameworks más populares de PHP. Un framework es un conjunto de herramientas y reglas para crear aplicaciones grandes sin empezar de cero. Laravel es muy demandado en las ofertas de empleo de España.
  • Tiendas online como WooCommerce, PrestaShop o Magento.
  • Moodle, la plataforma educativa que seguramente usa tu instituto, y MediaWiki, el programa que mueve Wikipedia.
  • Una parte muy grande de las webs de pymes, ayuntamientos y asociaciones.

Nota: has podido oír que “PHP está muerto”. No es así: el lenguaje ha mejorado muchísimo desde la versión 7 y sigue siendo muy pedido en el mercado laboral, sobre todo en agencias y empresas que mantienen webs con WordPress o Laravel.

PHP frente a JavaScript

Si vienes del curso de JavaScript, es normal preguntarse en qué se diferencian. La clave es dónde se ejecuta cada uno:

PHPJavaScript (en el navegador)
Dónde se ejecutaEn el servidorEn el navegador del visitante
CuándoAntes de enviar la páginaDespués de recibirla
El usuario ve el códigoNoSí
Acceso a la base de datosDirectoNo (tiene que pedírselo al servidor)
Puede cambiar la página sin recargarlaNoSí
Para qué es idealGenerar páginas, guardar datos, seguridadInteractividad: menús, validaciones al momento, animaciones
VariablesEmpiezan por $: $preciolet precio
Unir textosCon punto: "Hola " . $nombreCon + o plantillas

No compiten: se complementan. Una web típica usa PHP para generar el HTML y guardar datos, y JavaScript para que la página responda al instante en el navegador. JavaScript también puede ejecutarse en el servidor con Node.js, pero eso es otra historia.

Versiones de PHP

PHP ha cambiado mucho. Te encontrarás código de todas las épocas en tutoriales y proyectos antiguos, así que conviene situarlas:

VersiónAñoLo más importante
PHP 52004Programación orientada a objetos moderna. Hoy está totalmente obsoleta
PHP 72015El doble de rápido, tipos en funciones, operador ??
PHP 8.02020match, argumentos con nombre, tipos unión, operador ?->
PHP 8.1 - 8.32021-2023Enums, propiedades readonly, mejoras de tipos
PHP 8.42024Mejoras en clases y nuevas funciones de arrays
PHP 8.52025El operador tubería |> y más funciones útiles

En este curso usamos PHP 8.4 o superior. Todo lo que veas funcionará en cualquier PHP 8.x reciente.

Cuidado: si un tutorial usa funciones como mysql_connect() o mysql_query(), ciérralo: esas funciones se eliminaron en PHP 7 y además eran inseguras. Hoy se usa PDO, que verás en MySQL con PDO.

Tu primer script

Aunque PHP brilla en la web, también se puede ejecutar desde la terminal, sin navegador. Es la forma más rápida de practicar y la que usaremos en muchos ejemplos del curso. Crea un archivo hola.php:

<?php
echo "¡Hola, mundo!\n";
echo "Estoy aprendiendo PHP " . PHP_MAJOR_VERSION . "\n";
// ¡Hola, mundo!
// Estoy aprendiendo PHP 8

Y ejecútalo desde la carpeta donde lo has guardado:

php hola.php

Fíjate en varias cosas:

  • El archivo empieza con <?php, que indica dónde empieza el código PHP.
  • echo muestra texto. Es la instrucción que más usarás al principio.
  • Cada instrucción termina en punto y coma ;.
  • \n es un salto de línea. En la terminal hace falta para que cada mensaje salga en su línea; en una página web usarías etiquetas HTML como <p> o <br>.
  • El punto . une textos (concatena). PHP_MAJOR_VERSION es una constante que ya trae PHP con el número de versión principal.

Los comentarios // ... que ves al final de los bloques de código son la salida del programa: así la mostraremos en todo el curso.

Ahora un ejemplo un poco más útil, con variables (empiezan siempre por $) y un cálculo:

<?php
$producto = "Cuerda de escalada";
$precio = 89.90;
$unidades = 2;

$total = $precio * $unidades;

echo "Pedido: $unidades x $producto\n";
echo "Total: $total €\n";
// Pedido: 2 x Cuerda de escalada
// Total: 179.8 €

Dentro de comillas dobles, PHP sustituye las variables por su valor. Verás cómo formatear el precio con dos decimales y coma decimal en Cadenas.

Cómo se aprende PHP en este curso

El curso va de lo básico a lo práctico:

  1. Fundamentos (esta parte): instalación, sintaxis, variables, operadores, cadenas, condicionales, bucles, arrays, funciones, inclusión de archivos y fechas.
  2. PHP para la web: formularios, validación, sesiones, cookies y subida de archivos.
  3. Orientación a objetos y excepciones.
  4. Bases de datos con PDO, seguridad, JSON y Composer.
  5. Un proyecto final que junta todo.

Si ya has hecho el curso de JavaScript, Java o Python, muchas ideas te sonarán (variables, bucles, funciones); céntrate en las diferencias de sintaxis. Si es tu primer lenguaje, no te preocupes: cada concepto se explica desde cero.

Errores frecuentes

  • Abrir el archivo .php con doble clic: el navegador lo abre como file:///... y muestra el código tal cual (o lo descarga), porque nadie lo ha ejecutado. Los archivos PHP se abren siempre a través de un servidor, con una dirección como http://localhost/.... Lo preparas en la siguiente lección.
  • Pensar que PHP se ejecuta en el navegador: PHP termina su trabajo antes de que la página llegue al usuario. Si quieres reaccionar a un clic sin recargar, necesitas JavaScript.
  • Olvidar el punto y coma al final de una instrucción: PHP muestra un Parse error indicando la línea siguiente.
  • Usar + para unir textos: en PHP se concatena con el punto .; el + intenta sumar números.
  • Aprender con tutoriales antiguos: si ves mysql_query, variables sin comprobar o PHP 5, busca material actualizado a PHP 8.

Resumen

ConceptoLo esencial
PHPLenguaje de servidor, interpretado y gratuito para crear webs dinámicas
Dónde se ejecutaEn el servidor; el navegador solo recibe el HTML resultante
ArchivosExtensión .php; el código va entre <?php y ?>
Mostrar datosecho "texto";
VariablesEmpiezan por $: $precio = 10;
Unir textosOperador punto: "Hola " . $nombre
UsosWordPress, Laravel, Symfony, tiendas online, Moodle
Versión del cursoPHP 8.4 o superior
Ejecutar en terminalphp archivo.php

En la siguiente lección vas a montar tu servidor local para ejecutar PHP en el navegador.

Pon a prueba lo que has aprendido

[PHP] Cuando alguien visita tienda.php, ¿qué recibe su navegador?

[PHP] ¿Qué HTML llega al navegador al cargar esta página?
<p>Tienes <?= 3 * 4 ?> clases</p>

[PHP] Haces doble clic en hola.php y el navegador muestra el código tal cual, sin ejecutarlo. ¿Por qué?

[PHP] ¿Por qué la contraseña de la base de datos puede guardarse en un archivo PHP sin que los visitantes la vean?

¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.