var_export
En esta página
var_export
Devuelve el código PHP utilizado para generar una variable
Descripción#
var_export(mixed $value, [bool $return]): string
```php
`var_export` devuelve datos estructurados sobre la variable dada. Es el mismo principio que `var_dump` pero con una excepción: el resultado devuelto es código PHP válido.
## Parámetros
`value`
La variable que se desea exportar.
`return`
Si se utiliza y se establece a `true`, `var_export` devolverá la representación de la variable en lugar de mostrarla.
## Valores devueltos
Devuelve la representación de la variable cuando el parámetro `return` se utiliza y se evalúa a `true`. De lo contrario, esta función devolverá `null`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.2.0 | Los nombres de clase exportados son ahora completamente calificados. Anteriormente, la barra invertida inicial era omitida. |
| 7.3.0 | Exporta ahora los objetos `stdClass` como un `array` convertido a un objeto (`(object) array( ... )`), en lugar de utilizar el método no existente stdClass::\_\_set_state. El efecto práctico es que ahora `stdClass` es exportable, y que el código resultante funcionará incluso en versiones anteriores de PHP. |
## Ejemplos
Ejemplo con `var_export`
El ejemplo anterior mostrará:
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
El ejemplo anterior mostrará:
3.1
Exportar stdClass (a partir de PHP 7.3.0)
El ejemplo anterior mostrará:
(object) array(
'name' => 'ElePHPant ElePHPantsdotter',
'website' => 'https://php.net/elephpant.php',
)
Exportar clases
El ejemplo anterior mostrará:
\A::__set_state(array(
'var' => 5,
))
Uso de [\_\_set_state](#object.set-state)
```php
El ejemplo anterior mostrará:
object(A)#2 (2) {
["var1"]=>
int(5)
["var2"]=>
string(3) "foo"
}
Notas#
[!NOTE] Las variables de tipo
resourceno pueden ser exportadas por esta función.[!NOTE]
var_exportno maneja referencias circulares ya que sería imposible generar código PHP analizable para este tipo de datos. Si se desea hacer algo con la representación completa de un array o un objeto, se debe utilizar la funciónserialize.[!WARNING] Anterior a PHP 8.2.0, cuando
var_exportexportaba objetos, la barra invertida inicial no era incluida en el espacio de nombres de la clase y esto, para un máximo de compatibilidad.[!NOTE] Para poder evaluar el PHP generado por
var_export, todos los objetos analizados deben implementar el método mágico __set_state. La única excepción esstdClass; que es exportada utilizando un cast de unarraya un objeto.
Véase también#
print_r, serialize, var_dump