OUJOOD.COM
Qu'est-ce que la fonction var_export() ?
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
La fonction var_export() est un outil puissant en PHP qui permet d'obtenir une représentation structurée d'une variable sous forme de code PHP valide. Contrairement à var_dump() qui affiche des informations pour le débogage, var_export() génère du code PHP directement réutilisable dans vos scripts.
Cette fonction s'avère particulièrement utile lorsque vous devez sauvegarder l'état d'une variable dans un fichier de configuration, créer des fichiers de cache, ou documenter la structure exacte de vos données. Le code généré peut être copié-collé directement dans un script PHP ou évalué dynamiquement avec eval().
Syntaxe de var_export()
var_export ( mixed $expression [, bool $return = false ] ) : mixed
Paramètres :
- $expression : La variable à exporter (peut être de n'importe quel type : scalaire, tableau, objet)
- $return (optionnel) : Si défini à TRUE, retourne la représentation au lieu de l'afficher. Par défaut : FALSE
Valeur de retour :
Lorsque le paramètre $return est TRUE, la fonction retourne une chaîne contenant le code PHP de la variable. Sinon, elle affiche directement le résultat et retourne NULL.
Exemple 1 : Exporter un tableau
Voici comment var_export() traite un tableau multidimensionnel :
Exemple : 📋 Copier le code
<?php
$fruits = array(
'pomme',
'banane',
'details' => array(
'couleur' => 'rouge',
'prix' => 2.50,
'disponible' => true
)
);
// Affiche directement
var_export($fruits);
echo "\n\n";
// Retourne dans une variable
$code = var_export($fruits, true);
echo "Code généré :\n" . $code;
?>
Résultat affiché :
array (
0 => 'pomme',
1 => 'banane',
'details' =>
array (
'couleur' => 'rouge',
'prix' => 2.5,
'disponible' => true,
),
)
Exemple 2 : Exporter un objet
var_export() peut également exporter des objets en utilisant la méthode magique __set_state() :
Exemple : 📋 Copier le code
<?php
class Utilisateur {
public $nom;
public $age;
public static function __set_state($array) {
$obj = new Utilisateur();
$obj->nom = $array['nom'];
$obj->age = $array['age'];
return $obj;
}
}
$user = new Utilisateur();
$user->nom = 'Marie';
$user->age = 28;
var_export($user);
?>
Résultat affiché :
Utilisateur::__set_state(array(
'nom' => 'Marie',
'age' => 28,
))
Cas d'usage pratiques
1. Sauvegarder des configurations
Vous pouvez utiliser var_export() pour générer des fichiers de configuration PHP :
<?php
$config = array(
'database' => array(
'host' => 'localhost',
'user' => 'root',
'pass' => 'secret'
)
);
$export = "<?php\nreturn " . var_export($config, true) . ";\n";
file_put_contents('config.php', $export);
?>
2. Créer des fichiers de cache
Idéal pour mettre en cache des données complexes sans utiliser de sérialisation :
<?php
// Mise en cache
$data = array('resultat' => 'valeur', 'timestamp' => time());
file_put_contents('cache.php', '<?php return ' . var_export($data, true) . ';');
// Lecture du cache
$cached = include 'cache.php';
?>
Différences entre var_export(), var_dump() et print_r()
- var_export() : Génère du code PHP valide, réutilisable dans vos scripts
- var_dump() : Affiche des informations détaillées pour le débogage (types, tailles)
- print_r() : Affiche une représentation lisible mais non exécutable
Avantages de var_export()
- Code PHP valide : Le résultat peut être directement utilisé dans vos scripts
- Lisibilité : Format clair et structuré, facile à comprendre
- Portabilité : Partage facile de structures de données entre développeurs
- Performance : Plus rapide que la sérialisation pour certains cas d'usage
- Débogage : Visualisation claire de la structure des données complexes
Limites et précautions
Attention : var_export() ne peut pas exporter les ressources (connexions base de données, fichiers ouverts) ni les objets sans méthode __set_state(). Pour ces cas, préférez serialize() ou json_encode().
Conclusion
La fonction var_export() est un outil essentiel pour tout développeur PHP. Elle permet d'exporter proprement des variables en code PHP réutilisable, facilitant la création de fichiers de configuration, de systèmes de cache et le partage de structures de données. Sa simplicité d'utilisation et la qualité du code généré en font une fonction incontournable pour vos projets PHP.
|
Cours precedent: |
|