
🧪 Probar código PHP en versiones antiguas sin instalación: guía 2026
Escribió código PHP funcional en la versión más reciente, lo subió a producción y recibió una avalancha de reportes de error de clientes con hosting antiguo. ¿Le suena familiar? Una sintaxis que a usted le parece «obvia» se convierte en un error fatal en PHP 7.0. Instalar una docena de versiones obsoletas en local para revisar cada fragmento es una tarea de medio día, cuando no imposible.
El problema es más profundo de lo que parece. Las versiones antiguas de PHP desaparecen de los repositorios oficiales, no compilan en kernels Linux modernos y entran en conflicto con extensiones. WordPress todavía se ejecuta en servidores donde el proveedor de hosting fue demasiado perezoso para actualizar PHP. Como resultado, su plugin o tema se rompe para cientos de usuarios simplemente porque usó un argumento tipado string o la sintaxis corta de arrays.
Pero existe una herramienta que resuelve este problema en segundos: 3v4l.org, un probador de código PHP gratuito en línea que ejecuta el código en más de 300 versiones simultáneamente. Sin instalación, sin máquinas virtuales. En esta guía, le mostraré cómo detectar incompatibilidades antes del lanzamiento y le demostraré con errores reales que nosotros mismos enviamos a producción.
💡 Resumen rápido:
- Pegue un fragmento de código PHP en 3v4l.org y ejecútelo en todas las versiones, desde PHP 4.3.0 hasta la última 8.5
- Revise la salida agrupada: el sitio muestra dónde funciona el código, dónde arroja errores y dónde difiere el comportamiento
- Estudie dos ejemplos clásicos de incompatibilidad que rompen plugins de WordPress en hosting antiguo, con código y enlaces a pruebas en vivo
- Compare métodos alternativos de verificación: contenedores Docker, PHPBrew, el inspector integrado de PhpStorm, sus ventajas y desventajas
- Vea un video en inglés que demuestra el flujo de trabajo TemPHPest + 3v4l directamente desde VSCode
Por qué la instalación manual de versiones antiguas de PHP es dolorosa
Si administra un servidor Linux, seguro que lo ha notado: las ramas antiguas de PHP sin soporte simplemente desaparecen de los gestores de paquetes. El repositorio ppa:ondrej/php, la fuente principal de paquetes PHP para Ubuntu, advierte honestamente durante la instalación:
Solo se proporcionan versiones compatibles de PHP para las versiones compatibles de Ubuntu.

A junio de 2026, las ramas con soporte oficial son 8.2, 8.3, 8.4 y 8.5. PHP 8.1 dejó de tener soporte en diciembre de 2025. PHP 7.4 es historia desde hace mucho. Pero en hosting compartido y VPS desactualizados, todavía se encuentra con PHP 7.0, o incluso 5.6. Verificar el código contra esas versiones en local es toda una odisea.
PHPBrew en su día salvaba la situación: la utilidad podía compilar cualquier versión de PHP desde el código fuente y alternar entre ellas con un solo comando. Pero el proyecto apenas se ha actualizado desde 2020, y compilar PHP 5.6 en un kernel Linux 6.x es todo un rompecabezas de parches y banderas de compatibilidad. Los contenedores Docker son más sencillos, pero requieren escribir un Dockerfile para cada versión, descargar imágenes y aun así consumen gigabytes de espacio en disco.
Existe una alternativa, y funciona directamente en su navegador.
3V4l.org: su probador en línea para más de 300 versiones de PHP
3v4l.org (leet speak para «eval») es un sandbox en línea que ejecuta su código PHP en más de 300 versiones del intérprete simultáneamente. Desde el antiguo PHP 4.3.0 hasta el último 8.5. El creador del proyecto compiló y mantiene cada versión significativa lanzada a lo largo de la historia del lenguaje.
La mecánica es simple hasta la genialidad: pegue un fragmento en el panel izquierdo, presione eval(), y en segundos obtiene una tabla de resultados. El sitio agrupa las versiones por salida: las filas verdes significan que el código se ejecutó de forma idéntica, las amarillas/rojas significan que el comportamiento difiere o que ocurrió un error. Ve de inmediato a partir de qué versión mínima de PHP su sintaxis se vuelve aceptable.
Lo que es especialmente valioso: 3v4l.org muestra el texto del error para cada versión problemática. No un abstracto «incompatible», sino un Parse error: syntax error, unexpected '[' in ... específico, con el número de línea indicado. Esto ahorra horas de depuración.
Cada prueba obtiene una URL única; el enlace puede adjuntarse a un ticket, enviarse a un líder de equipo o usarse como documentación: «Aquí está la prueba de que las expresiones match se rompen en PHP 7.4».
Ejemplo 1: sintaxis corta de arrays, una mina para WordPress
Un desarrollador escribe en JavaScript, cambia a PHP y por costumbre crea un array:
1 $a = [];
Parece inofensivo. En su máquina local con PHP 8.4 funciona. En un servidor de pruebas con PHP 8.2, también funciona. Sube a producción, y los clientes con PHP 5.6 ven una pantalla en blanco.
La sintaxis corta de arrays [] apareció solo en PHP 5.4. Antes, solo array(). Y aunque PHP 5.4 salió en 2012, las estadísticas de WordPress.org mostraron durante décadas una cuota significativa de instalaciones en versiones de PHP inferiores a 5.4. La situación ha mejorado ahora, pero los plugins de WordPress aún deben tener en cuenta los matices de compatibilidad.
Ejecute este fragmento en 3v4l.org y obtendrá un veredicto definitivo:
1 PHP 5.3.x and older: Parse error: syntax error, unexpected '[' 2 PHP 5.4.x and newer: OK
Sin conjeturas, sin leer el manual para cada construcción. Tiempo ahorrado: 30 segundos en lugar de 15 minutos buscando «qué versión de PHP admite la sintaxis corta de arrays».
Ejemplo 2: type hints, cuando el código falla silenciosamente en PHP antiguo
Las declaraciones de tipo hacen que PHP sea más estricto y predecible. Pero la evolución de los type hints fue desigual, y esto crea una trampa. Observe este código:
1 function handleException(Exception $e) {} 2 function greet(string $name) {} 3 function processItems(array $items) {} 4 5 handleException(new Exception('Test')); 6 greet("hello"); 7 processItems([1, 2, 3]);
Parecen tres declaraciones idénticas. Pero probarlo en 3v4l.org revela una sorpresa:
Tipo de argumento | Versión mínima de PHP |
|---|---|
Nombre de clase ( | PHP 5.0 |
| PHP 5.1 |
| PHP 7.0 |
| PHP 5.4 |
Los tipos escalares string, int y bool llegaron recién en PHP 7.0, ¡12 años después que los tipos de clase! Si su plugin declara una versión mínima de PHP 5.6 y usted usó function register(string $username), en un hosting antiguo esto produce un error fatal críptico:
1 Catchable fatal error: Argument 1 passed to greet() must be an instance of string, 2 string given in...
El mensaje es confuso: «must be an instance of string, string given». El cliente lo lee como un galimatías y escribe una reseña furiosa. La razón es simple: PHP 5.6 no entiende los type hints escalares e intenta interpretar string como un nombre de clase.
Con 3v4l.org usted detecta estas incompatibilidades en un minuto, no después de una docena de reportes de error.
Alternativas: IDE, Docker y utilidades de consola
3v4l.org cubre la mayoría de los escenarios de verificación de compatibilidad, pero no todos. Esto es lo que hay en el arsenal, con ventajas y desventajas.
PhpStorm. El inspector integrado de JetBrains resalta la sintaxis incompatible con la versión de PHP seleccionada: usted especifica «PHP 7.4» en la configuración y el editor subraya match(), las propiedades tipadas, str_contains(). Sin embargo, PhpStorm cuesta dinero (suscripción desde $99/año) y la verificación es estática, no hay ejecución real del código. El inspector no mostrará la diferencia en el comportamiento de array_key_last() entre versiones, mientras que 3v4l.org sí lo hará.
Docker. El enfoque más flexible: docker run -v $(pwd):/app php:5.6 php /app/test.php ejecuta código en un entorno exacto. Pero probar 10 versiones requiere 10 contenedores, 10 imágenes diferentes y un script de automatización. Para una verificación rápida de fragmentos, es excesivo.
PHPBrew local. Como se mencionó antes, el proyecto está congelado y compilar versiones antiguas de PHP en un kernel moderno requiere malabares con parches. En 2026, es más fácil abrir 3v4l.org.
GitHub Actions / CI. Una matriz de versiones de PHP en CI (por ejemplo, strategy.matrix.php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']) detecta problemas con cada push. Esto es imprescindible para librerías, pero para autores de plugins de WordPress que escriben en Sublime Text o VSCode sin CI, 3v4l.org sigue siendo la herramienta más accesible y rápida.
Video: TemPHPest + 3v4l directamente desde VSCode
La extensión TemPHPest para VSCode integra 3v4l.org en el editor: seleccione código, presione un atajo de teclado y obtenga resultados en todas las versiones de PHP sin abrir un navegador. El autor de la extensión grabó una breve demostración:
La combinación VSCode + TemPHPest + 3v4l.org ofrece una experiencia prácticamente fluida: escriba código, verifique la compatibilidad de inmediato, corrija errores. Funciona más rápido que alternar entre el editor y el navegador.
⁉️🤔 Preguntas frecuentes
¿Es gratuito 3v4l.org?
Sí, completamente. Sin registro, sin límites en el número de ejecuciones, sin anuncios. El servicio es de código abierto y funciona en el servidor personal del creador. Si lo usa con regularidad, puede apoyar al autor a través de GitHub Sponsors, lo que ayuda a costear el alojamiento y la electricidad.
¿Qué versiones de PHP están disponibles en 3v4l.org?
Todas las versiones significativas, desde PHP 4.3.0 (publicado en 2002) hasta la más reciente 8.5 (noviembre de 2025). Cada versión menor es una línea independiente en la tabla de resultados. En total, más de 300 versiones. Si una versión necesaria no está en la lista, el autor añade nuevas versiones con prontitud.
¿Se pueden probar proyectos completos o solo fragmentos?
3v4l.org está diseñado para fragmentos de código aislados, funciones, clases, algoritmos individuales. Puede pegar varios cientos de líneas, pero sin
requireniincludecon autocarga de composer y conexiones a bases de datos. Para pruebas de integración completas de un proyecto, son más adecuados los contenedores Docker o GitHub Actions con una matriz de versiones de PHP.
¿Es seguro pegar código sensible en un servidor de terceros?
No. El código en 3v4l.org obtiene una URL pública y es técnicamente accesible mediante enlace directo. No use el servicio para datos confidenciales, claves de API, contraseñas ni lógica de negocio propietaria. Para código propietario, ejecute un contenedor Docker local:
docker run -v $(pwd):/app php:7.4 php /app/private-code.php.
¿En qué es mejor 3v4l.org que la comprobación integrada en el IDE?
El análisis estático en el IDE (PhpStorm, PHPStan) verifica la sintaxis y los tipos, pero no ejecuta código. 3v4l.org realmente ejecuta el fragmento a través de los intérpretes de todas las versiones y muestra la salida real, las diferencias de comportamiento de
array_key_last(),json_encode()ypreg_match()entre versiones. Además, no requiere comprar un IDE, funciona en un navegador.
Qué elegir para comprobar la compatibilidad del código PHP en 2026
Para el trabajo diario como autor de temas y plugins, el esquema es este. Un fragmento que suscita dudas va directamente a 3v4l.org. Resultado en 5 segundos, el enlace a la prueba se adjunta al commit. Un proyecto donde la compatibilidad con una docena de versiones de PHP es importante, una matriz en GitHub Actions: se configura una vez y cada push se ejecuta automáticamente. Comprobación rápida del código de terceros antes de la revisión de código, TemPHPest en VSCode (gratuito, integrado con 3v4l.org).
Lo principal que cambió respecto a 2020 (cuando apareció por primera vez la versión original de este material): PHP 5.6 finalmente ha abandonado la mayoría de las plataformas de hosting, la barra mínima pasó a ser PHP 7.4, y en el horizonte está PHP 8.5 con nuevas funcionalidades y nuevas incompatibilidades potenciales. Pero el principio permanece inalterado: compruebe la compatibilidad antes del lanzamiento, duerma tranquilo. 3v4l.org hace que esta comprobación sea trivial.



