var_exportRetourne le code PHP utilisé pour générer une variable
&reftitle.description;
stringnullvar_exportmixedvalueboolreturn&false;var_export retourne des données structurées
sur la variable donnée. C'est le même principe que
var_dump mais avec une exception :
le résultat retourné est du code PHP valide.
&reftitle.parameters;
value
La variable que vous voulez exporter.
return
Si utilisé et mis à &true;, var_export retournera
la représentation de la variable au lieu de l'afficher.
&reftitle.returnvalues;
Retourne la représentation de la variable lorsque le paramètre
return est utilisé et évalué à &true;. Autrement,
cette fonction retournera &null;.
&reftitle.changelog;
&Version;&Description;7.3.0
Exporte désormais les objets stdClass en tant
qu'un &array; transtyper vers un objet ((object) array( ... )),
au lieu d'utiliser la méthode non existante
stdClass::__setState.
L'effet pratique est que désormais stdClass est
exportable, et que le code résultant fonctionnera même sur des versions
antérieure de PHP.
&reftitle.examples;
Exemple avec var_export
]]>
&example.outputs;
1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
]]>
]]>
&example.outputs;
Exporter stdClass (à partir de PHP 7.3.0)
name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';
var_export($person);
]]>
&example.outputs;
'ElePHPant ElePHPantsdotter',
'website' => 'https://php.net/elephpant.php',
)
]]>
Exporter des classes
var = 5;
var_export($a);
?>
]]>
&example.outputs;
5,
))
]]>
Utilisation de __set_state
var1 = $an_array['var1'];
$obj->var2 = $an_array['var2'];
return $obj;
}
}
$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';
eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
// 'var1' => 5,
// 'var2' => 'foo',
// ));
var_dump($b);
?>
]]>
&example.outputs;
int(5)
["var2"]=>
string(3) "foo"
}
]]>
&reftitle.notes;
Les variables de type &resource; ne peuvent être exportées par cette
fonction.
var_export ne gère pas les références circulaires car il
serait impossible de générer un code PHP analysable pour ce type de données.
Si vous voulez faire quelque chose avec la représentation complète d'un tableau
ou d'un objet, utilisez la fonction serialize.
Lorsque la fonction var_export exporte des objets,
l'antislash initial n'est pas inclus dans l'espace de nom de la classe
et ce, pour un maximum de compatibilité.
Pour être capable d'évaluer le PHP généré par var_export,
tous les objets analysés doivent implémenter la méthode magique __set_state. La seule exception est
stdClass; qui est exportée en utilisant un cast d'un
&array; à un objet.
&reftitle.seealso;
print_rserializevar_dump