Detail lain untuk ditambahkan dan yang mungkin berguna, adalah var_dump memotong teks yang sangat panjang, menunjukkan ... dan menunjukkan panjang yang tersisa, misalnya: even '... (length = 4482) Jika Anda menggunakan gema ini tidak terjadi.
Yordan
Jawaban:
186
printdan echokurang lebih sama; keduanya adalah konstruksi bahasa yang menampilkan string. Perbedaannya halus: printmemiliki nilai balik 1 sehingga dapat digunakan dalam ekspresi sedangkan echomemiliki voidtipe kembali; echodapat mengambil banyak parameter, meskipun penggunaannya jarang; echosedikit lebih cepat dariprint . (Secara pribadi, saya selalu menggunakan echo, tidak pernah print.)
var_dumpmencetak dump terperinci dari suatu variabel, termasuk jenisnya dan jenis setiap sub-item (jika berupa array atau objek). print_rmencetak variabel dalam bentuk yang lebih bisa dibaca manusia: string tidak dikutip, tipe informasi dihilangkan, ukuran array tidak diberikan, dll.
var_dump biasanya lebih bermanfaat daripada print_r saat debugging, menurut pengalaman saya. Ini sangat berguna ketika Anda tidak tahu persis nilai / tipe apa yang Anda miliki dalam variabel Anda. Pertimbangkan program pengujian ini:
@Shore - itu adalah sesuatu yang dibangun ke dalam bahasa yang bukan fungsi. Mereka umumnya sangat cepat, dan tidak beroperasi persis seperti fungsi normal.
alex
3
Diedit dua tahun kemudian untuk mengoreksi ketidakakuratan yang diidentifikasi dalam komentar ini. Terima kasih semua, saya pasti tidur pada 7 Juni '10. ;-)
Menghasilkan satu atau lebih string yang dipisahkan oleh koma
Tidak ada nilai balik
misalnya echo "String 1", "String 2"
mencetak
Hanya menghasilkan string tunggal
Kembali 1 , sehingga dapat digunakan dalam ekspresi
misalnya print "Hello"
atau, if ($expr && print "foo")
print_r ()
Menghasilkan representasi yang bisa dibaca manusia dari sembarang nilai pun
Menerima bukan hanya string tetapi tipe lain termasuk array dan objek, memformatnya agar dapat dibaca
Berguna saat debugging
Dapat mengembalikan outputnya sebagai nilai kembali (bukan gema) jika argumen opsional kedua diberikan
var_dump ()
Menghasilkan representasi yang dapat dibaca manusia dari satu atau lebih nilai yang dipisahkan oleh koma
Menerima bukan hanya string tetapi tipe lain termasuk array dan objek, memformatnya agar dapat dibaca
Menggunakan format output yang berbeda untuk print_r(), misalnya juga mencetak jenis nilai
Berguna saat debugging
Tidak ada nilai balik
var_export ()
Menghasilkan representasi yang dapat dibaca manusia dan PHP yang dapat dieksekusi dari nilai apa pun
Menerima bukan hanya string tetapi tipe lain termasuk array dan objek, memformatnya agar dapat dibaca
Menggunakan format output yang berbeda untuk keduanya print_r()danvar_dump() - hasil yang dihasilkan adalah kode PHP yang valid!
Berguna saat debugging
Dapat mengembalikan outputnya sebagai nilai kembali (bukan gema) jika argumen opsional kedua diberikan
Catatan:
Meskipun printdapat digunakan dalam ekspresi, saya sarankan orang-orang menghindari melakukannya, karena itu buruk untuk keterbacaan kode (dan karena itu tidak mungkin berguna). Aturan yang diutamakan ketika berinteraksi dengan operator lain juga bisa membingungkan. Karena itu, saya pribadi tidak pernah punya alasan untuk menggunakannya echo.
Sedangkan echodan printmerupakan konstruksi bahasa, print_r()dan var_dump()/ var_export()adalah fungsi biasa. Anda tidak perlu tanda kurung untuk melampirkan argumen ke echoatau print(dan jika Anda menggunakannya, mereka akan diperlakukan seperti dalam ekspresi).
Sementara var_export()mengembalikan kode PHP yang valid yang memungkinkan nilai untuk dibaca kembali nanti, bergantung pada kode produksi ini dapat membuatnya lebih mudah untuk memperkenalkan kerentanan keamanan karena kebutuhan untuk digunakan eval(). Akan lebih baik menggunakan format seperti JSON sebagai gantinya untuk menyimpan dan membaca kembali nilai-nilai. Kecepatannya akan sebanding.
Hanya catatan singkat tentang kapan Anda ingin echo $a, $b;sintaks ketika Anda bisa melakukannya echo $a . $b;: jika $ a atau $ b adalah string yang sangat besar maka yang terakhir akan menggunakan memori ekstra dan waktu membuat versi string yang terpisah dari string dalam memori sebelum itu. dapat mulai mengeluarkan ke browser.
thomasrutter
Tentu saja Anda bisa menggunakannya echo $a; echo $b;juga.
thomasrutter
16
Hanya untuk menambah jawaban John ,echo harus menjadi satu-satunya yang Anda gunakan untuk mencetak konten ke halaman.
printsedikit lebih lambat. var_dump()danprint_r() seharusnya hanya digunakan untuk debug.
Juga layak disebutkan adalah bahwa print_r()dan var_dump()akan bergema secara default, tambahkan argumen kedua untuk print_r()setidaknya yang mengevaluasi true untuk mendapatkannya kembali, misalnya print_r($array, TRUE).
Perbedaan antara gema dan kembali adalah:
echo: Akan segera mencetak nilai ke output.
kembali: Akan mengembalikan output fungsi sebagai string. Berguna untuk logging, dll.
Hanya karena Anda semacam mengangkat masalah, apa perbedaan antara echoing dan returning?
David mengatakan mengembalikan Monica
2
wow Saya berharap saya tahu tentang parameter kembali :( pada dasarnya Anda dapat melakukan $ foo = print_r ($ array, true); dan menggunakannya dengan cara lain (ke dalam log, tabel, dll)
FryGuy
Saya telah menggunakan print_rparam yang kembali cukup banyak ketika saya coding PHP. Namun, saya cenderung menulis print_r( $foo, 1 );. Ini lebih cepat untuk mengetik;) Dan tentang ini saya tidak terlalu peduli tentang keterbacaan karena saya menemukan nama print_rtidak terlalu deskriptif juga.
exhuma
var_dump()tidak mendukung argumen kedua yang memungkinkannya untuk mengembalikan nilai seperti print_r()tidak, karena var_dump()dapat menerima beberapa argumen untuk ditampilkan.
thomasrutter
@ thomasrutter Benar, tidak yakin mengapa saya menulis itu.
Perbedaan antara echo , print , print_r dan var_dump sangat sederhana.
gema
gema sebenarnya bukan fungsi tetapi konstruksi bahasa yang digunakan untuk mencetak hasil. Ini sedikit lebih cepat daripada cetak.
echo "Hello World";// this will print Hello World
echo "Hello ","World";// Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1";// this will print 55
echo "var_1=".$var_1;// this will print var_1=55
echo 45+$var_1;// this will print 100
$var_2="PHP";
echo "$var_2";// this will print PHP
$var_3=array(99,98,97)// Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4");// Arrays are not possible with echo (loop or index value required)
Anda juga dapat menggunakan pernyataan gema dengan atau tanpa tanda kurung
echo ("Hello World");// this will print Hello World
mencetak
Sama seperti echo construct print juga konstruksi bahasa dan bukan fungsi nyata. Perbedaan antara gema dan cetak adalah bahwa cetak hanya menerima argumen tunggal dan cetak selalu kembali 1. Sedangkan gema tidak memiliki nilai balik. Jadi pernyataan cetak dapat digunakan dalam ekspresi.
print"Hello World";// this will print Hello Worldprint"Hello ","World";// Multiple arguments - NOT POSSIBLE with print
$var_1=55;print"$var_1";// this will print 55print"var_1=".$var_1;// this will print var_1=55print45+$var_1;// this will print 100
$var_2="PHP";print"$var_2";// this will print PHP
$var_3=array(99,98,97)// Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4");// Arrays are not possible with print (loop or index value required)
Sama seperti gema , hasil cetak dapat digunakan dengan atau tanpa tanda kurung.
print("Hello World");// this will print Hello World
print_r
Fungsi print_r () digunakan untuk mencetak informasi yang dapat dibaca manusia tentang suatu variabel. Jika argumennya adalah array, fungsi print_r () mencetak kunci dan elemennya (sama untuk objek).
print_r ("Hello World");// this will print Hello World
$var_1=55;
print_r ("$var_1");// this will print 55
print_r ("var_1=".$var_1);// this will print var_1=55
print_r (45+$var_1);// this will print 100
$var_2="PHP";
print_r ("$var_2");// this will print PHP
$var_3=array(99,98,97)// this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4");// this will print Array ( [P] => 3 [J] => 4 )
var_dump
Fungsi var_dump biasanya digunakan untuk debugging dan mencetak informasi (tipe dan nilai) tentang variabel / array / objek.
var_dump($var_1);// this will print int(5444)
var_dump($var_2);// this will print string(5) "Hello"
var_dump($var_3);// this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4);// this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
Ada banyak masalah dengan jawaban ini. printadalah tidak fungsi nyata, itu adalah bahasa seperti gema. Itu juga bisa digunakan sebagai pernyataan. echoadalah tidak pernyataan juga tidak dapat digunakan dalam satu. printtidak tidak memerlukan tanda kurung, juga tidak baik gema atau mencetak menggunakan tanda kurung seperti fungsi akan. Anda juga melewatkan salah satu perbedaan utama - gema menerima beberapa string ke gema yang dipisahkan oleh koma.
thomasrutter
2
... dan Anda mengirimkan jawaban ini ketika beberapa jawaban sudah ada dan berisi informasi yang benar .
thomasrutter
2
** Echocan menerima banyak ekspresi sementara hasil cetak tidak bisa. Fungsi Print_r () PHP digunakan untuk mengembalikan array dalam bentuk yang dapat dibaca manusia. Ini hanya ditulis sebagai
echo: echo adalah konstruksi bahasa di mana tidak diperlukan untuk menggunakan tanda kurung dengannya dan dapat mengambil sejumlah parameter dan mengembalikan batal.
print: ini adalah konstruksi bahasa di mana tidak perlu menggunakan tanda kurung itu hanya mengambil satu parameter dan kembali
1 always.intprint(param1);print"test1";print"test1","test2";// It will give syntax error
prinf: Ini adalah fungsi yang membutuhkan minimal satu string dan gaya format dan mengembalikan panjang string output.
int printf($string,$s);
$s="Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;Output:HelloShailesh how are you?27
echo returns void so its execution is faster than printand printf
print_r () dapat mencetak nilai tetapi juga jika parameter flag kedua dilewatkan dan BENAR - itu akan mengembalikan hasil cetak sebagai string dan tidak ada yang mengirim ke output standar. Tentang var_dump. Jika XDebug debugger diinstal maka hasil output akan diformat dengan cara yang jauh lebih mudah dibaca dan dimengerti.
Jawaban:
print
danecho
kurang lebih sama; keduanya adalah konstruksi bahasa yang menampilkan string. Perbedaannya halus:print
memiliki nilai balik 1 sehingga dapat digunakan dalam ekspresi sedangkanecho
memilikivoid
tipe kembali;echo
dapat mengambil banyak parameter, meskipun penggunaannya jarang;echo
sedikit lebih cepat dariprint
. (Secara pribadi, saya selalu menggunakanecho
, tidak pernahprint
.)var_dump
mencetak dump terperinci dari suatu variabel, termasuk jenisnya dan jenis setiap sub-item (jika berupa array atau objek).print_r
mencetak variabel dalam bentuk yang lebih bisa dibaca manusia: string tidak dikutip, tipe informasi dihilangkan, ukuran array tidak diberikan, dll.var_dump
biasanya lebih bermanfaat daripadaprint_r
saat debugging, menurut pengalaman saya. Ini sangat berguna ketika Anda tidak tahu persis nilai / tipe apa yang Anda miliki dalam variabel Anda. Pertimbangkan program pengujian ini:Dengan
print_r
Anda tidak dapat membedakan antara0
dan0.0
, ataufalse
dan''
:sumber
gema
Tidak ada nilai balik
misalnya
echo "String 1", "String 2"
mencetak
Kembali
1
, sehingga dapat digunakan dalam ekspresimisalnya
print "Hello"
atau,
if ($expr && print "foo")
print_r ()
var_dump ()
print_r()
, misalnya juga mencetak jenis nilaivar_export ()
print_r()
danvar_dump()
- hasil yang dihasilkan adalah kode PHP yang valid!Catatan:
print
dapat digunakan dalam ekspresi, saya sarankan orang-orang menghindari melakukannya, karena itu buruk untuk keterbacaan kode (dan karena itu tidak mungkin berguna). Aturan yang diutamakan ketika berinteraksi dengan operator lain juga bisa membingungkan. Karena itu, saya pribadi tidak pernah punya alasan untuk menggunakannyaecho
.echo
danprint
merupakan konstruksi bahasa,print_r()
danvar_dump()
/var_export()
adalah fungsi biasa. Anda tidak perlu tanda kurung untuk melampirkan argumen keecho
atauprint
(dan jika Anda menggunakannya, mereka akan diperlakukan seperti dalam ekspresi).var_export()
mengembalikan kode PHP yang valid yang memungkinkan nilai untuk dibaca kembali nanti, bergantung pada kode produksi ini dapat membuatnya lebih mudah untuk memperkenalkan kerentanan keamanan karena kebutuhan untuk digunakaneval()
. Akan lebih baik menggunakan format seperti JSON sebagai gantinya untuk menyimpan dan membaca kembali nilai-nilai. Kecepatannya akan sebanding.sumber
echo $a, $b;
sintaks ketika Anda bisa melakukannyaecho $a . $b;
: jika $ a atau $ b adalah string yang sangat besar maka yang terakhir akan menggunakan memori ekstra dan waktu membuat versi string yang terpisah dari string dalam memori sebelum itu. dapat mulai mengeluarkan ke browser.echo $a; echo $b;
juga.Hanya untuk menambah jawaban John ,
echo
harus menjadi satu-satunya yang Anda gunakan untuk mencetak konten ke halaman.print
sedikit lebih lambat.var_dump()
danprint_r()
seharusnya hanya digunakan untuk debug.Juga layak disebutkan adalah bahwa
print_r()
danvar_dump()
akan bergema secara default, tambahkan argumen kedua untukprint_r()
setidaknya yang mengevaluasi true untuk mendapatkannya kembali, misalnyaprint_r($array, TRUE)
.Perbedaan antara gema dan kembali adalah:
sumber
echo
ing danreturn
ing?print_r
param yang kembali cukup banyak ketika saya coding PHP. Namun, saya cenderung menulisprint_r( $foo, 1 );
. Ini lebih cepat untuk mengetik;) Dan tentang ini saya tidak terlalu peduli tentang keterbacaan karena saya menemukan namaprint_r
tidak terlalu deskriptif juga.var_dump()
tidak mendukung argumen kedua yang memungkinkannya untuk mengembalikan nilai sepertiprint_r()
tidak, karenavar_dump()
dapat menerima beberapa argumen untuk ditampilkan.Tidak memiliki tipe pengembalian
Memiliki tipe pengembalian
Output seperti yang diformat,
sumber
Perbedaan antara echo , print , print_r dan var_dump sangat sederhana.
gema sebenarnya bukan fungsi tetapi konstruksi bahasa yang digunakan untuk mencetak hasil. Ini sedikit lebih cepat daripada cetak.
Anda juga dapat menggunakan pernyataan gema dengan atau tanpa tanda kurung
Sama seperti echo construct print juga konstruksi bahasa dan bukan fungsi nyata. Perbedaan antara gema dan cetak adalah bahwa cetak hanya menerima argumen tunggal dan cetak selalu kembali 1. Sedangkan gema tidak memiliki nilai balik. Jadi pernyataan cetak dapat digunakan dalam ekspresi.
Sama seperti gema , hasil cetak dapat digunakan dengan atau tanpa tanda kurung.
Fungsi print_r () digunakan untuk mencetak informasi yang dapat dibaca manusia tentang suatu variabel. Jika argumennya adalah array, fungsi print_r () mencetak kunci dan elemennya (sama untuk objek).
Fungsi var_dump biasanya digunakan untuk debugging dan mencetak informasi (tipe dan nilai) tentang variabel / array / objek.
sumber
Gema :
Ini adalah pernyataan bukan fungsi Tidak ada nilai balik
Tidak Diperlukan tanda kurung
Tidak Mencetak Array
Mencetak
Ini adalah fungsi nyata
Jenis kembali 1
Diperlukan tanda kurung
Tidak Mencetak Array
Print_r
Cetak dalam format yang dapat dibaca manusia
String tidak dalam Kutipan
Tidak Detail Informasi dari Variabel seperti jenis dan semua
var_dump
Semua informasi dump variabel seperti jenis elemen dan sub elemen
sumber
print
adalah tidak fungsi nyata, itu adalah bahasa seperti gema. Itu juga bisa digunakan sebagai pernyataan.echo
adalah tidak pernyataan juga tidak dapat digunakan dalam satu.print
tidak tidak memerlukan tanda kurung, juga tidak baik gema atau mencetak menggunakan tanda kurung seperti fungsi akan. Anda juga melewatkan salah satu perbedaan utama - gema menerima beberapa string ke gema yang dipisahkan oleh koma.** Echocan menerima banyak ekspresi sementara hasil cetak tidak bisa. Fungsi Print_r () PHP digunakan untuk mengembalikan array dalam bentuk yang dapat dibaca manusia. Ini hanya ditulis sebagai
sumber
echo: echo adalah konstruksi bahasa di mana tidak diperlukan untuk menggunakan tanda kurung dengannya dan dapat mengambil sejumlah parameter dan mengembalikan batal.
print: ini adalah konstruksi bahasa di mana tidak perlu menggunakan tanda kurung itu hanya mengambil satu parameter dan kembali
prinf: Ini adalah fungsi yang membutuhkan minimal satu string dan gaya format dan mengembalikan panjang string output.
sumber
print_r()
digunakan untuk mencetak array dalam format yang dapat dibaca manusia.sumber
print_r () dapat mencetak nilai tetapi juga jika parameter flag kedua dilewatkan dan BENAR - itu akan mengembalikan hasil cetak sebagai string dan tidak ada yang mengirim ke output standar. Tentang var_dump. Jika XDebug debugger diinstal maka hasil output akan diformat dengan cara yang jauh lebih mudah dibaca dan dimengerti.
sumber
mereka berdua adalah konstruksi bahasa. gema mengembalikan batal dan mencetak kembali 1. gema dianggap sedikit lebih cepat daripada cetak.
sumber