var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

var_exportImprime o devuelve una representación string de una variable analizable

Descripción

var_export ( mixed $expression [, bool $return = false ] ) : mixed

var_export() obtiene información estructurada sobre la variable dada. Es similar a la función var_dump() con una excepción: la representación devuelta es código PHP válido.

Parámetros

expression

La variable que desea exportar.

return

Si es usada y se define como TRUE, var_export() devolverá la representación de la variable en lugar de imprimirla.

Valores devueltos

Devuelve la representación de la variable cuando el parámetro return es utilizado y evaluado como TRUE. En caso contrario, esta función devolverá NULL.

Notas

Nota:

Cuando el parámetro return se usa, esta función utiliza el almacenamiento en búfer de salida interno, por lo que no puede usarse dentro de una función de llamada de retorno ob_start().

Historial de cambios

Versión Descripción
5.1.0 Posibilidad de exportar las clases y los arrays que contienen las clases utilizando el método mágico __set_state.

Ejemplos

Ejemplo #1 Ejemplos de var_export()

<?php
$a 
= array (12, array ("a""b""c"));
var_export($a);
?>

El resultado del ejemplo sería:

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b 
3.1;
$v var_export($btrue);
echo 
$v;

?>

El resultado del ejemplo sería:

3.1

Ejemplo #2 Exportación de clases a partir de PHP 5.1.0

<?php
class { public $var; }
$a = new A;
$a->var 5;
var_export($a);
?>

El resultado del ejemplo sería:

A::__set_state(array(
   'var' => 5,
))

Ejemplo #3 Uso de __set_state (a partir de PHP 5.1.0)

<?php
class A
{
    public 
$var1;
    public 
$var2;

    public static function 
__set_state($una_matriz)
    {
        
$obj = new A;
        
$obj->var1 $una_matriz['var1'];
        
$obj->var2 $una_matriz['var2'];
        return 
$obj;
    }
}

$a = new A;
$a->var1 5;
$a->var2 'foo';

eval(
'$b = ' var_export($atrue) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);
?>

El resultado del ejemplo sería:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Notas

Nota:

Las variables de tipo resource no pueden ser exportadas por esta función.

Nota:

var_export() no maneja referencias circulares ya que sería prácticamente imposible generar código PHP interpretable en tal caso. Si desea trabajar con la representación completa de una matriz u objeto, use serialize().

Advertencia

Cuando var_export() exporta objectos, la barra diagonal no se incluye en el nombre de clases que pertencen a un namespace para mantener compatibilidad.

Ver también

  • print_r() - Imprime información legible para humanos sobre una variable
  • serialize() - Genera una representación apta para el almacenamiento de un valor
  • var_dump() - Muestra información sobre una variable