(PHP 4 >= 4.2.0, PHP 5)
var_export — Retourne le code PHP utilisé pour générer une variable
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.
La variable que vous voulez exporter.
Si utilisé et mis à TRUE, var_export() retournera la représentation de la variable au lieu de l'afficher.
Note: Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de rappel ob_start().
Retourne la représentation de la variable lorsque le paramètre return est utilisé et évalué à TRUE. Autrement, cette fonction retournera NULL.
Version | Description |
---|---|
5.1.0 | Possibilité d'exporter des classes et des tableaux contenant des classes en utilisant la méthode magique __set_state. |
Exemple #1 Exemple avec var_export()
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>
L'exemple ci-dessus va afficher :
array ( 0 => 1, 1 => 2, 2 => array ( 0 => 'a', 1 => 'b', 2 => 'c', ), )
<?php
$b = 3.1;
$v = var_export($b, true);
echo $v; // 3.1
?>
L'exemple ci-dessus va afficher :
3.1
Exemple #2 Exporter des classes depuis PHP 5.1.0
<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>
L'exemple ci-dessus va afficher :
A::__set_state(array( 'var' => 5, ))
Exemple #3 Utilisation de __set_state (depuis PHP 5.1.0)
<?php
class A
{
public $var1;
public $var2;
public static function __set_state($an_array)
{
$obj = new A;
$obj->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);
?>
L'exemple ci-dessus va afficher :
object(A)#2 (2) { ["var1"]=> int(5) ["var2"]=> string(3) "foo" }
Note: Les variables de type ressource ne peuvent être exportées par cette fonction.
Note: 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().