Maison  >  Article  >  développement back-end  >  Analyse de la différence entre var_export et var_dump en php

Analyse de la différence entre var_export et var_dump en php

小云云
小云云original
2018-03-14 13:21:551891parcourir

Cet article partage principalement avec vous l'analyse de la différence entre var_export et var_dump en php. J'espère qu'il pourra vous aider.

var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5)

var_dump -- imprimer les informations relatives à la variable
description

void var_dump ( mixed expression [, mixed expression [, ...]] )

Cette fonction affiche des informations structurelles sur une ou plusieurs expressions, y compris le type et la valeur de l'expression. Les tableaux développeront les valeurs de manière récursive, montrant leur structure par indentation.

Le code est le suivant :

$data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb'));
$data = var_dump($data,TRUE); 
echo $data;

Le formulaire de sortie est le suivant :

array(3) { 
["name"]=> 
string(3) "abc" 
["job"]=> 
string(10) "programmer" 
["a"]=> 
array(3) { 
[0]=> 
string(2) "aa" 
[1]=> 
string(2) "cc" 
[2]=> 
string(2) "bb" 
} 
} 
bool(true)

deux var_export

(PHP 4 >= 4.2.0, PHP 5) 
var_export -- 输出或返回一个变量的字符串表示 
描述 
mixed var_export ( mixed expression [, bool return] )

Cette fonction renvoie des informations structurelles sur les variables transmises à cette fonction. Elle est similaire à var_dump(), sauf que la représentation renvoyée est du code PHP légal.
Vous pouvez renvoyer une représentation d'une variable en définissant le deuxième paramètre de la fonction sur TRUE.
EG :

var_export(array('a','b',array('aa','bb','cc'))) 这种与VAR_DUMP没什么区别; 
$var =var_export(array('a','b',array('aa','bb','cc')),TRUE),加上TRUE后,不会再打印出来,而是给了一个变量,这样就可以直接输出;
echo $var;此时输出来的形式与var_dump()打印的相似。

EG2

$data = array ('name' => 'abc', 'job' => 
'programmer','a'=>array('aa','cc','bb'));
$data = var_export($data,TRUE); echo $data;

Le format de sortie est le suivant :

array ( 
'name' => 'abc', 'job' =>
 'programmer', 'a' => array 
 ( 0 => 'aa', 1 => 'cc', 2 => 'bb', ),
  )

Le Voici les informations supplémentaires :

error_log(var_export(yblog_mspconfiginit("ratings"),true));

Cause du problème

var_export doit retourner le code php légal, c'est-à-dire le code renvoyé par var_export peut être directement utilisé comme code php. Attribuer une valeur à une variable. Et cette variable obtiendra le même type de valeur que var_export. Cependant, lorsque la variable est de type ressource, elle ne peut pas être copiée simplement. Par conséquent, lorsque la variable de var_export est de type ressource, var_export renverra NULL.

Découverte du problème

Quand le suivi de yratings_get_targets,

error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL

m'a amené à penser que la connexion à la base de données ne pouvait pas être établie, et j'ai pris le mauvais chemin pendant une journée.
Enfin, j'ai découvert que c'est l'une des différences entre var_export et var_dump

C'est :
La cause du problème
var_export doit renvoyer du code php légal, c'est-à-dire var_export renvoie Le code peut être directement utilisé comme code PHP pour affecter une variable. Et cette variable obtiendra le même type de valeur que var_export
Cependant, lorsque le type de variable est ressource, elle ne peut pas être simplement copiée. Par conséquent, lorsque la variable de var_export est de type ressource, var_export retournera NULL

<.>Exemple

$res = yblog_mspconfiginit("ratings"); 
var_dump($res); 
var_export($res);
Résultat :

Le code est le suivant :

resource(1) of type (yahoo_yblog)
NULL Autre exemple :

Le code est le suivant :

$res = fopen(&#39;status.html&#39;, &#39;r&#39;); 
var_dump($res); 
var_export($res);
Résultat :

resource(2) of type (stream) 
NULL
Recommandations associées :

Explication de l'exemple de fonction php var_export

Résumé de la fonction var_export Et comparaison avec var_dump

Introduction à l'utilisation de var_export et var_dump_PHP tutoriel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn