htdocs, ábrelos desde http://localhost (no con doble clic) y
empieza
con variables, arrays, funciones e include.
PHP sigue impulsando una parte enorme de la web, desde WordPress hasta aplicaciones a medida, y es una de las formas más directas de entender cómo funciona un backend. En el libro Programación Full-Stack lo elegimos precisamente por eso: con un servidor local y un editor ya puedes construir aplicaciones completas conectadas a una base de datos.
Cómo funciona PHP: del navegador al servidor
La diferencia clave con JavaScript del navegador es dónde se ejecuta el código:
- El navegador pide
/productos.phpal servidor. - El servidor web (Apache) ve la extensión
.phpy le pasa el archivo al intérprete de PHP. - PHP ejecuta el código: consulta la base de datos, calcula, decide qué mostrar.
- El resultado (normalmente HTML) vuelve al navegador.
El usuario nunca ve tu código PHP, solo su resultado. Por eso ahí van las contraseñas de la base de datos, la lógica de negocio y las validaciones que importan.
Prepara tu entorno con XAMPP
XAMPP instala en un solo paso Apache, PHP y MySQL (MariaDB) en tu ordenador:
- Descárgalo desde apachefriends.org e instálalo.
- Abre el panel de control de XAMPP y arranca Apache y MySQL.
- Crea una carpeta dentro de
C:\xampp\htdocs\, por ejemplomi-app. - Abre
http://localhost/mi-app/en el navegador.
apache2, php y
mysql-server con el gestor de paquetes. El código es el mismo.
Tu primer script
<?php
$nombre = 'Ana';
$hora = (int) date('H');
$saludo = $hora < 12 ? 'Buenos días' : 'Buenas tardes';
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Mi primer PHP</title>
</head>
<body>
<h1><?= $saludo ?>, <?= htmlspecialchars($nombre) ?></h1>
<p>Hoy es <?= date('d/m/Y') ?></p>
</body>
</html>
- El código PHP va entre
<?phpy?>. <?= ... ?>es un atajo para imprimir un valor.htmlspecialchars()convierte caracteres como<en texto seguro. Úsalo siempre que imprimas datos que no controlas.
Variables, arrays y control de flujo
<?php
// Las variables empiezan con $ y no se declara el tipo
$precio = 1500;
$activo = true;
// Array asociativo: clave => valor (como un objeto)
$producto = [
'nombre' => 'Teclado',
'precio' => 1500,
'stock' => 3,
];
// Array de arrays: lo que te devolverá una consulta a MySQL
$productos = [
['nombre' => 'Teclado', 'precio' => 1500],
['nombre' => 'Mouse', 'precio' => 800],
];
foreach ($productos as $p) {
echo $p['nombre'] . ': $' . $p['precio'] . '<br>';
}
if ($producto['stock'] === 0) {
echo 'Sin stock';
} elseif ($producto['stock'] < 5) {
echo 'Últimas unidades';
} else {
echo 'Disponible';
}
Usa === (comparación estricta) en lugar de ==: compara valor y tipo, y
te ahorra sorpresas como que "0" == false sea verdadero.
Funciones e includes
Cuando el proyecto crece, separa el código en funciones y archivos reutilizables. El patrón más común es tener la cabecera y el pie en archivos aparte:
<?php
declare(strict_types=1);
function formatearPrecio(float $monto, string $moneda = '$'): string
{
return $moneda . number_format($monto, 2, ',', '.');
}
echo formatearPrecio(1500); // $1.500,00
echo formatearPrecio(20, 'US$'); // US$20,00
<?php
require_once __DIR__ . '/funciones.php'; // si falta, error fatal
include __DIR__ . '/partes/header.php'; // si falta, solo un aviso
?>
<main>
<p>Precio: <?= formatearPrecio(1500) ?></p>
</main>
<?php include __DIR__ . '/partes/footer.php'; ?>
Usa require_once para archivos imprescindibles (configuración, funciones) y
__DIR__ para construir rutas que funcionen sin importar desde dónde se ejecute el script.
Errores comunes
- Abrir el archivo con doble clic: verás el código o una página en blanco. Los
archivos PHP siempre se abren a través de
http://localhost. - Pantalla en blanco sin explicación: en desarrollo, activa
display_errors = Onenphp.ini(y desactívalo en producción). - Olvidar el punto y coma: el clásico
syntax error, unexpected. El número de línea del error suele ser la línea siguiente a la que falla. - Imprimir datos sin escapar: todo lo que venga del usuario pasa por
htmlspecialchars()antes de mostrarse.
Del primer script a una aplicación completa
El libro Programación Full-Stack te lleva paso a paso desde este punto hasta formularios, sesiones, MySQL y tres proyectos reales.
Comprar en Amazon