W3docs

var_export()

La función var_export() de PHP genera una representación en código PHP válido de una variable, ideal para caché, depuración y documentación.

Introducción

var_export() es una función integrada de PHP que produce una representación de una variable como código PHP válido. A diferencia de un simple print, la cadena que devuelve es analizable: podrías copiarla de vuelta en un archivo .php (o pasarla a eval()) y obtener un valor idéntico. Eso la hace ideal para:

  • Generar archivos de configuración o datos en caché — escribe la exportación en disco y usa require más tarde.
  • Inspeccionar la estructura exacta de una variable durante la depuración.
  • Guardar valores esperados como instantánea en pruebas y documentación.

Esta página cubre la sintaxis, el indicador $return, cómo se representa cada tipo de dato y en qué se diferencia var_export() de var_dump() y print_r().

Sintaxis

var_export(mixed $value, bool $return = false): ?string
ParámetroDescripción
$valueLa variable o expresión a exportar.
$returnCuando es false (valor por defecto), la representación se imprime directamente y la función devuelve null. Cuando es true, la representación se devuelve como string en lugar de imprimirse.

El error más común es olvidar el segundo argumento: $result = var_export($x); deja $result como null porque la salida fue directamente a stdout. Para capturarla, pasa true.

Ejemplo básico

php— editable, runs on the server

Aquí $var1 es un entero, $var2 un string y $array un array indexado. Cada llamada devuelve un string que es en sí mismo PHP válido:

10
'Hello, world!'
array (
  0 => 'apple',
  1 => 'banana',
  2 => 'cherry',
)

Observa que los strings están envueltos en comillas simples y los arrays conservan sus claves de forma explícita — la salida de un array podría asignarse directamente a una variable.

Cómo se representa cada tipo

<?php
var_export(true);   echo "\n"; // true
var_export(null);   echo "\n"; // NULL
var_export(3.14);   echo "\n"; // 3.14
var_export('a');    echo "\n"; // 'a'

$assoc = ['name' => 'Ann', 'age' => 30];
var_export($assoc); echo "\n";
?>

Salida:

true
NULL
3.14
'a'
array (
  'name' => 'Ann',
  'age' => 30,
)

Los booleanos se convierten en true/false, null se convierte en NULL en mayúsculas, y los arrays asociativos preservan sus claves de string — todo PHP sintácticamente válido.

Exportar objetos

Para los objetos, var_export() emite una llamada a __set_state() para que la estructura pueda, en principio, reconstruirse:

<?php
class Point {
    public int $x = 1;
    public int $y = 2;
}
var_export(new Point());
?>
\Point::__set_state(array(
   'x' => 1,
   'y' => 2,
))

Para reconstruir realmente dicho objeto a partir de la exportación, la clase debe definir un método estático __set_state(). Sin él, evaluar la salida lanza un error — por lo que para hacer viajes de ida y vuelta con objetos, serialize() suele ser una mejor opción.

var_export() vs. var_dump() vs. print_r()

FunciónFormato de salida¿Muestra tipos?¿Devuelve string?¿PHP válido?
var_export()Código PHP analizableImplícitamenteSí ($return = true)
var_dump()Tipo + valor + longitudSí (explícito)No (solo imprime)No
print_r()Árbol legible por humanosNoSí (2.º argumento)No

Usa var_export() cuando necesites código que puedas almacenar o volver a ejecutar, var_dump() cuando necesites tipos y longitudes de string para depurar, y print_r() para un vistazo rápido y legible.

Un uso práctico: archivos de datos en caché

Como la exportación es PHP válido, puedes persistir datos calculados y cargarlos rápidamente en la siguiente petición:

<?php
$config = ['debug' => true, 'level' => 3, 'tags' => ['a', 'b']];

// Write a loadable PHP file.
file_put_contents('cache.php', '<?php return ' . var_export($config, true) . ';');

// Later, somewhere else:
$loaded = require 'cache.php';
?>

$loaded es idéntico al array $config original — no se requiere análisis de JSON ni paso de deserialización.

Conclusión

var_export() convierte una variable en código PHP listo para ejecutar. Pasa $return = true para capturar ese código como string, recuerda que null se imprime como NULL y los strings van entre comillas simples, y recurre a serialize() cuando necesites hacer viajes de ida y vuelta con objetos. Para depuración con tipos, compáralo con var_dump() y print_r().

Práctica

Práctica
¿Para qué sirve la función var_export() en PHP?
¿Para qué sirve la función var_export() en PHP?
Was this page helpful?