libro / blog / php-para-principiantes

// capítulo 05 · php

PHP para principiantes: cómo funciona en el servidor y tu primer script

Gustavo Arias8 min de lectura

TL;DR PHP se ejecuta en el servidor y le envía al navegador HTML ya generado. Instala XAMPP, guarda tus archivos en 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:

  1. El navegador pide /productos.php al servidor.
  2. El servidor web (Apache) ve la extensión .php y le pasa el archivo al intérprete de PHP.
  3. PHP ejecuta el código: consulta la base de datos, calcula, decide qué mostrar.
  4. 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:

  1. Descárgalo desde apachefriends.org e instálalo.
  2. Abre el panel de control de XAMPP y arranca Apache y MySQL.
  3. Crea una carpeta dentro de C:\xampp\htdocs\, por ejemplo mi-app.
  4. Abre http://localhost/mi-app/ en el navegador.
En macOS puedes usar XAMPP o MAMP, y en Linux instalar 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>

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

La referencia oficial es el manual de PHP en español: cada función tiene ejemplos y comentarios de la comunidad.

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