Jaka jest różnica między var_dump, var_exporti print_r?
Jaka jest różnica między var_dump, var_exporti print_r?
Odpowiedzi:
var_dump służy do debugowania. var_dumpzawsze wypisuje wynik.
// 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 służy również do debugowania, ale nie zawiera typu elementu członkowskiego. Jest to dobry pomysł, jeśli znasz typy elementów w tablicy, ale w przeciwnym razie może być mylący. print_rDomyślnie drukuje wynik, ale zamiast tego umożliwia zwracanie jako ciąg znaków przy użyciu opcjonalnego$returnparametru.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export drukuje prawidłowy kod php. Przydatne, jeśli obliczyłeś jakieś wartości i chcesz, aby wyniki były stałą w innym skrypcie. Zauważ, żevar_exportnie obsługuje cykli odwołań / tablic rekurencyjnych, podczas gdyvar_dumpiprint_rsprawdź je. var_exportDomyślnie drukuje wynik, ale zamiast tego umożliwia zwracanie jako ciąg znaków przy użyciu opcjonalnego$returnparametru.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Osobiście uważam, że var_exportto najlepszy kompromis zwięzły i precyzyjny.
var_exportze względu na swoją naturę, umrze straszną rekurencyjną śmiercią na, no cóż, rekurencyjnych tablicach. print_ri var_dump(choć nie jestem do końca pewien co do drugiego, ponieważ zwykle go nie używam) nie mam tego problemu. Więc nie rób tego var_export($_GLOBALS);na przykład (który zawiera siebie). :)
var_dumpwyjście. Szkoda, że nie pozwala na zwracanie danych wyjściowych w postaci łańcucha. Jako taki mogę odnieść się do sentymentu @ iconoclast w powyższym komentarzu. Ale mając do wyboru var_exportponad var_dumpdla tego przypadku użycia jest do przyjęcia dla mnie. Aby uzyskać kompletność, zanotuj tę powiązaną prośbę o funkcję .
var_dumpi var_exportodnosić się w ten sposób (z instrukcji )
var_export () pobiera ustrukturyzowane informacje o danej zmiennej. Jest podobny do var_dump () z jednym wyjątkiem: zwrócona reprezentacja jest poprawnym kodem PHP.
Różnią się one od print_rtego, że var_dumpeksportują więcej informacji, takich jak typ danych i rozmiar elementów.