Heim > Backend-Entwicklung > PHP-Tutorial > Analyse des Unterschieds zwischen var_export und var_dump in PHP

Analyse des Unterschieds zwischen var_export und var_dump in PHP

小云云
Freigeben: 2023-03-21 12:00:01
Original
1932 Leute haben es durchsucht

Dieser Artikel teilt Ihnen hauptsächlich die Analyse des Unterschieds zwischen var_export und var_dump in PHP mit. Ich hoffe, er kann Ihnen helfen.

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

var_dump – Variablenbezogene Informationen drucken
Beschreibung

void var_dump ( mixed expression [, mixed expression [, ...]] )
Nach dem Login kopieren

Diese Funktion zeigt Strukturinformationen zu einem oder mehreren Ausdrücken an, einschließlich Typ und Wert des Ausdrucks. Arrays erweitern Werte rekursiv und zeigen ihre Struktur durch Einrückung.

Der Code lautet wie folgt:

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

Das Ausgabeformat ist wie folgt:

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)
Nach dem Login kopieren

two var_export

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

Diese Funktion gibt Strukturinformationen über die an diese Funktion übergebenen Variablen zurück. Sie ähnelt var_dump(), außer dass die zurückgegebene Darstellung legaler PHP-Code ist.
Sie können eine Darstellung einer Variablen zurückgeben, indem Sie den zweiten Parameter der Funktion auf TRUE setzen.
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()打印的相似。
Nach dem Login kopieren

EG2

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

Das Ausgabeformat ist wie folgt:

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

The Im Folgenden finden Sie ergänzende Informationen:

error_log(var_export(yblog_mspconfiginit("ratings"),true));
Nach dem Login kopieren

Ursache des Problems

var_export muss legalen PHP-Code zurückgeben, d. h. den von var_export zurückgegebenen Code kann direkt als PHP-Code verwendet werden. Weisen Sie einer Variablen einen Wert zu. Und diese Variable erhält denselben Werttyp wie var_export. Wenn es sich bei der Variablentyp jedoch um eine Ressource handelt, kann sie nicht einfach kopiert werden. Wenn die Variable von var_export jedoch vom Ressourcentyp ist, gibt var_export NULL zurück.

Problemerkennung

Wann Das Tracking von yratings_get_targets,

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

ließ mich denken, dass die Verbindung zur DB nicht hergestellt werden konnte, und habe einen Tag lang den falschen Weg eingeschlagen.
Schließlich habe ich herausgefunden, dass dies einer der Unterschiede zwischen var_export und var_dump ist

Das ist:
Ursache des Problems
var_export muss legalen PHP-Code zurückgeben, d. h. var_export gibt den Code zurück, der direkt als PHP-Code zum Zuweisen einer Variablen verwendet werden kann. Und diese Variable erhält den gleichen Werttyp wie var_export
Wenn der Variablentyp jedoch „Ressource“ ist, kann er nicht einfach kopiert werden. Wenn die Variable von var_export vom Ressourcentyp ist, gibt var_export daher NULL zurück

Beispiel

$res = yblog_mspconfiginit("ratings"); 
var_dump($res); 
var_export($res);
Nach dem Login kopieren

Ergebnis:

Der Code lautet wie folgt:

resource(1) of type (yahoo_yblog)
Nach dem Login kopieren

NULL Ein weiteres Beispiel:

Der Code lautet wie folgt :

$res = fopen('status.html', 'r'); 
var_dump($res); 
var_export($res);
Nach dem Login kopieren

Ergebnis:

resource(2) of type (stream) 
NULL
Nach dem Login kopieren

Verwandte Empfehlungen:

Beispielerklärung zur PHP var_export-Funktion

Zusammenfassung der Funktion var_export und Vergleich mit var_dump

Einführung in die Verwendung von var_export und var_dump_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonAnalyse des Unterschieds zwischen var_export und var_dump in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage