Cómo usar el compilador de PHP online
- Escribe o pega un script de PHP en el editor. La etiqueta de apertura
<?phpes opcional; si tu código no contiene ninguna etiqueta de PHP, se añade automáticamente. Las plantillas que mezclan HTML y bloques<?php ... ?>también funcionan. Restablecer ejemplo recupera el código inicial. - Pulsa Ejecutar o usa Ctrl + Enter (⌘ + Enter en Mac).
- Todo lo que tu script muestre con
echo,print,printfovar_dumpaparece en el panel Salida. Los avisos y los errores fatales se resaltan. - Elige un límite de tiempo de 5, 15 o 60 segundos. Los scripts que tarden más se detienen automáticamente, y Detener finaliza una ejecución al instante.
La primera ejecución descarga el intérprete de PHP, unos 12 MB. Tu navegador lo guarda en caché, así que las siguientes ejecuciones arrancan mucho más rápido. Usa Copiar o main.php para conservar tu script.
PHP se ejecuta en local dentro de tu navegador, por lo que tu código nunca se envía a nuestros servidores ni se guarda en ellos. El editor recuerda tu último script en el almacenamiento local de tu navegador y en ningún otro sitio.
Qué admite
El compilador usa PHP 8 mediante php-wasm, el intérprete de PHP compilado a WebAssembly. No es una simulación; tu código lo ejecuta el propio PHP.
- Sintaxis de PHP 8: propiedades tipadas, tipos de unión, expresiones
match, argumentos con nombre, funciones flecha (fn), el operador nullsafe (?->) y enums, si la versión incluida los admite. - Funciones básicas para cadenas (
str_contains,sprintf,explode), arrays (array_map,usort,array_filter), matemáticas y fechas. - JSON con
json_encodeyjson_decode. - Expresiones regulares con las funciones
preg_*. - Clases, interfaces, traits, closures, generadores y excepciones.
Limitaciones:
- Sin extensiones de red:
curl, los sockets y las peticiones HTTP no están disponibles. - Sin servidor de base de datos: no hay ningún MySQL ni PostgreSQL al que conectarse. Para practicar SQL, usa el compilador de SQL online.
- Sin contexto de servidor web:
$_GET,$_POST, las sesiones y las cookies no reciben datos de peticiones reales, y la salida HTML se muestra como texto, no se renderiza. - Sin paquetes de Composer y sin entrada estándar.
Referencia rápida de PHP
<?php
$prices = ['apple' => 1.20, 'bread' => 2.50, 'milk' => 0.99];
$expensive = array_filter($prices, fn($p) => $p > 1);
arsort($expensive);
foreach ($expensive as $item => $price) {
printf("%-6s %5.2f\n", $item, $price);
}
$label = match (true) {
count($prices) > 2 => 'big basket',
default => 'small basket',
};
echo $label, PHP_EOL;
echo json_encode($prices, JSON_PRETTY_PRINT), "\n";
| Tarea | Sintaxis |
|---|---|
| Variable | $name = "Ada"; |
| Interpolación de cadenas | "Hello, {$name}!" |
| Array asociativo | $a = ['key' => 'value']; |
| Recorrer claves y valores | foreach ($a as $k => $v) { } |
| Inspeccionar un valor | var_dump($x); o print_r($x); |
| Fusión de null | $v = $a['x'] ?? 'default'; |
Consejos
- Termina las líneas con
"\n"oPHP_EOL;echono añade un salto de línea por sí solo. - Usa
print_r($array)para ver de forma compacta arrays anidados, ovar_dump()cuando también necesites tipos y longitudes. - Para un JSON legible, pasa
JSON_PRETTY_PRINT, o pega la salida en el formateador y validador de JSON para validarla. - Cada ejecución inicia un intérprete nuevo, así que las variables y funciones de la ejecución anterior no se conservan.
preg_match? Constrúyelo y depúralo primero en el probador de Regex y luego pégalo entre los delimitadores, por ejemplo '/^\d+$/'.Preguntas frecuentes
¿Tengo que empezar mi código con <?php?
No. Si el script no contiene ninguna etiqueta <?php, se añade una automáticamente. También puedes escribir HTML con bloques <?php ... ?> incrustados, exactamente igual que en un archivo .php de un servidor web.
¿Puedo conectarme a MySQL?
No. El intérprete se ejecuta en tu navegador sin acceso a la red ni a un servidor de base de datos. Para practicar SQL, el compilador de SQL te ofrece una base de datos SQLite real en el navegador.
¿Por qué no funcionan curl ni file_get_contents() con una URL?
Las extensiones de red no están incluidas en esta compilación de WebAssembly, y los navegadores no permiten conexiones de red directas desde un entorno aislado como este.
¿Es lo mismo que ejecutar PHP en un servidor?
En cuanto a las características del lenguaje y a las funciones de cadenas, arrays y JSON, sí: es el motor real de PHP. Todo lo que dependa de un servidor web, de extensiones o de la red se comporta de forma distinta.
Actualizado