Apa perbedaan antara var_dump, var_exportdan print_r?
Apa perbedaan antara var_dump, var_exportdan print_r?
Jawaban:
var_dump adalah untuk keperluan debugging. var_dumpselalu mencetak hasilnya.
// 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 juga untuk tujuan debugging, tetapi tidak termasuk tipe anggota. Ini adalah ide yang baik untuk digunakan jika Anda mengetahui jenis elemen dalam array Anda, tetapi bisa menyesatkan sebaliknya. print_rsecara default mencetak hasilnya, tetapi memungkinkan kembali sebagai string sebagai gantinya dengan menggunakan$returnparameteropsional.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export mencetak kode php yang valid. Berguna jika Anda menghitung beberapa nilai dan ingin hasilnya sebagai konstanta di skrip lain. Catatan yangvar_exporttidak dapat menangani siklus referensi / array rekursif, sedangkanvar_dumpdanprint_rperiksa ini. var_exportsecara default mencetak hasilnya, tetapi memungkinkan kembali sebagai string sebagai gantinya dengan menggunakan$returnparameteropsional.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Secara pribadi, saya pikir var_exportadalah kompromi terbaik yang ringkas dan tepat.
var_export, karena sifatnya, akan mati kematian rekursif yang mengerikan pada, well, array rekursif. print_rdan var_dump(meskipun, tidak begitu yakin tentang yang terakhir, karena saya biasanya tidak menggunakannya) tidak memiliki masalah itu. Jadi jangan var_export($_GLOBALS);, misalnya (yang berisi dirinya sendiri). :)
var_dumpoutput. Sayang sekali itu tidak memungkinkan mengembalikan output sebagai string. Karena itu saya dapat menghubungkan sentimen @ iconoclast dalam komentar di atas. Tetapi harus memilih var_exportlebih var_dumpuntuk kasus penggunaan ini dapat diterima dengan saya. Untuk kelengkapan, perhatikan permintaan fitur terkait ini .
var_dumpdan var_exporthubungkan seperti ini (dari manual )
var_export () mendapat informasi terstruktur tentang variabel yang diberikan. Ini mirip dengan var_dump () dengan satu pengecualian: representasi yang dikembalikan adalah kode PHP yang valid.
Mereka berbeda dari print_ryang var_dumpmengekspor lebih banyak informasi, seperti tipe data dan ukuran elemen.