Ce face debug_zval_dump
debug_zval_dump arată cum păstrează PHP valoarea în memorie. Pentru tablouri afișează refcount, adică de câte locuri este folosit același tablou, și dacă este packed (chei 0, 1, 2…). Textele fixe din cod apar ca interned.
Este o unealtă pentru a înțelege copierea la scriere (copy-on-write): $b = $a nu copiază tabloul, ci crește numărul de referințe până la prima modificare. Pentru depanarea obișnuită, var_dump este suficient.
Parametri
| Parametru | Descriere |
|---|---|
$value, ...$values |
Valorile inspectate. |
Ce returnează
Nimic.
Exemple
Exemplul 1: Un tablou partajat de două variabile
<?php
$a = [1, 2, 3];
$a[] = 4;
$b = $a;
debug_zval_dump($a);
Rezultat
array(4) packed refcount(3){
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
Greșeli frecvente
- Încerci să tragi concluzii din valoarea exactă a lui
refcount. Ea include și referințe temporare făcute chiar de apel și diferă între versiuni de PHP.
Comenzi înrudite
var_dump: Afișează tipul și valoarea exactă a unei variabile. Este principalul instrument de depanare.memory_get_usage / memory_get_peak_usage: Returnează câtă memorie folosește scriptul acum (memory_get_usage) sau maximul atins (memory_get_peak_usage).