Heim >Backend-Entwicklung >PHP-Tutorial >Über PHPs debug_zval_dump und xdebug_debug_zval
Liebe Meister, ich möchte fragen, warum der von debug_zval_dump und xdebug_debug_zval erhaltene refcount unterschiedlich ist?
Zum Beispiel:
<code> $var = "laruence"; $var_1 = &$var; $var_2 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; //debug_zval_dump得到的refcount等于1 //xdebug_debug_zval得到的refcount等于3 </code>
Obwohl ich online gelesen habe, dass refcount angibt, wie viele Variablennamen auf diesen Zval-Container verweisen, weiß ich immer noch nicht, warum die Ergebnisse inkonsistent sind. Eine ausführliche Einführung zu dieser Funktion habe ich nicht gefunden. . .
Aber ich habe folgende Regeln festgestellt:
Wenn eine Variablenreferenz vorhanden ist, lautet das mit xdebug_debug_zval erhaltene Ergebnis: is_ref=1;refcount=die Anzahl der Variablenreferenzen (zählt die Variable selbst)
Zum Beispiel
<code> $var = "laruence"; //第1次 $var_1 = &$var; //第2次 $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>
Also können wir von xdebug_debug_zval is_red=1;refcount=2;
erhaltenWenn auf die Variable nicht verwiesen wird, lautet das mit xdebug_debug_zval erhaltene Ergebnis: is_ref=0;refcount=die Anzahl der kopierten Variablen (zählt die Variable selbst)
Zum Beispiel
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>
Also können wir aus xdebug_debug_zval is_red=0;refcount=5;
erhaltenWenn eine Variablenreferenz vorhanden ist, lautet das Ergebnis der Verwendung von debug_zval_dump: refcount=1 (immer = 1)
Zum Beispiel
<code> $var = "laruence"; $var_1 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>
Aus debug_zval_dump können wir also Folgendes erhalten: refcount=1;
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>Also können wir aus xdebug_debug_zval is_red=0;refcount=6;
erhalten
Antwortinhalt:debug_zval_dump und xdebug_debug_zval erhaltene refcount unterschiedlich ist? Zum Beispiel:
<code> $var = "laruence"; $var_1 = &$var; $var_2 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; //debug_zval_dump得到的refcount等于1 //xdebug_debug_zval得到的refcount等于3 </code>Obwohl ich online gelesen habe, dass refcount angibt, wie viele Variablennamen auf diesen Zval-Container verweisen, weiß ich immer noch nicht, warum die Ergebnisse inkonsistent sind. Eine ausführliche Einführung zu dieser Funktion habe ich nicht gefunden. . .
Aber ich bin zu folgenden Regeln gekommen:
<code> $var = "laruence"; //第1次 $var_1 = &$var; //第2次 $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>Also können wir von xdebug_debug_zval is_red=1;refcount=2;
erhalten
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>Also können wir aus xdebug_debug_zval is_red=0;refcount=5;
erhalten
<code> $var = "laruence"; $var_1 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>Aus debug_zval_dump können wir also Folgendes erhalten: refcount=1;
Also können wir aus xdebug_debug_zval is_red=0;refcount=6;
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>erhalten