Quelle est la différence entre var_dump, var_exportet print_r?
Quelle est la différence entre var_dump, var_exportet print_r?
Réponses:
var_dump sert à des fins de débogage. var_dumpimprime toujours le résultat.
// var_dump(array('', false, 42, array('42')));
array(4) {
[0]=> string(0) ""
[1]=> bool(false)
[2]=> int(42)
[3]=> array(1) {[0]=>string(2) "42")}
}
print_r sert également à des fins de débogage, mais n'inclut pas le type de membre. C'est une bonne idée à utiliser si vous connaissez les types d'éléments dans votre tableau, mais cela peut être trompeur dans le cas contraire. print_rpar défaut, imprime le résultat, mais autorise le retour sous forme de chaîne à la place en utilisant le$returnparamètrefacultatif.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export imprime un code php valide. Utile si vous avez calculé des valeurs et que vous souhaitez que les résultats soient une constante dans un autre script. Notez quevar_exportne peut pas gérer les cycles de référence / tableaux récursifs, alors quevar_dumpet lesprint_rvérifier. var_exportpar défaut, imprime le résultat, mais autorise le retour sous forme de chaîne à la place en utilisant le$returnparamètrefacultatif.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Personnellement, je pense que var_exportc'est le meilleur compromis entre concis et précis.
var_export, en raison de sa nature, mourra d'une horrible mort récursive sur, eh bien, des tableaux récursifs. print_ret var_dump(cependant, pas tout à fait sûr de ce dernier, puisque je ne l'utilise généralement pas) n'ont pas ce problème. Alors ne le faites pas var_export($_GLOBALS);, par exemple (qui se contient). :)
var_dumpsortie. Dommage qu'il ne permette pas de renvoyer la sortie sous forme de chaîne. En tant que tel, je peux me rapporter au sentiment de @ iconoclast dans le commentaire ci-dessus. Mais avoir à choisir var_exportplus var_dumppour ce cas d'utilisation est acceptable pour moi. Par souci d'exhaustivité, notez cette demande de fonctionnalité associée .
var_dumpet var_exportraconter comme ça (du manuel )
var_export () obtient des informations structurées sur la variable donnée. Il est similaire à var_dump () à une exception près: la représentation renvoyée est du code PHP valide.
Ils diffèrent de print_rcelui qui var_dumpexporte plus d'informations, comme le type de données et la taille des éléments.