echo mencetak teks. Tulis echo "Hello"; untuk menampilkan sebuah string, echo "Hello, $name"; untuk menyertakan variabel, dan echo $a, $b; untuk mencetak beberapa nilai berturut-turut. Apa pun yang dicetak echo menjadi halaman yang ditampilkan browser, atau teks yang kamu lihat di terminal.
Baris pertama memakai interpolasi (variabelnya berada di dalam kutip ganda), baris kedua menggabungkan string dengan operator ., dan baris ketiga memberikan tiga nilai yang dipisahkan koma. Ketiganya mencetak hasil yang sejenis.
Echo HTML
Di halaman web, echo biasanya mencetak HTML. Browser menerima teksnya lalu merender tag-tagnya. Tekan Jalankan, dan tab Halaman menampilkan hasil renderingnya:
Baris terakhir memakai kutip tunggal supaya kutip ganda pada class="note" tidak perlu di-escape. Di dalam kutip tunggal, variabel tidak diganti nilainya, jadi pakai kutip tunggal untuk teks yang tetap. Kalau sebuah nilai berasal dari pengunjung (formulir, URL), cetak lewat htmlspecialchars supaya nilai itu tidak bisa menyisipkan HTML; lihat halaman htmlspecialchars.
Short echo tag <?=
Di dalam file HTML, <?= $value ?> adalah bentuk singkat dari <?php echo $value; ?>. Tag ini membuat template tetap mudah dibaca:
Short echo tag selalu tersedia. Short tag yang lain, <? tanpa php, bergantung pada sebuah pengaturan dan sebaiknya tidak dipakai.
Echo beberapa nilai dan baris baru
echo tidak menambahkan baris baru. Di terminal, tambahkan "\n" (dalam kutip ganda) atau konstanta PHP_EOL. Di HTML, baris baru di kode sumber tidak terlihat apa-apa; pakai <br> atau elemen terpisah.
Koma dan titik memberi output yang sama. Dengan koma, echo mencetak setiap nilai bergantian; dengan titik, PHP menyusun satu string dulu lalu mencetaknya. Baris baru punya halamannya sendiri: PHP newline.
Echo vs print
print adalah saudara tuanya. Ia mencetak satu nilai dan selalu mengembalikan 1, sehingga bisa muncul di dalam ekspresi. echo menerima nilai berapa pun dan tidak mengembalikan apa-apa.
echo | print | |
|---|---|---|
| Nilai | satu atau lebih, dipisahkan koma | tepat satu |
| Mengembalikan | tidak ada (ini sebuah pernyataan) | 1 |
| Dipakai di dalam ekspresi | tidak | ya, $ok = print "x"; |
| Penggunaan umum | hampir semuanya | jarang |
printf berbeda lagi: fungsi ini memformat nilai dengan placeholder, seperti printf("%05.2f", 3.14159), dan dibahas di halaman sprintf.
Echo array atau objek
echo hanya mencetak string dan nilai yang bisa dikonversi menjadi string (angka, boolean, null). Array tidak bisa dikonversi. PHP milikmu sendiri mencetak warning dan kata Array:
PHP Warning: Array to string conversion in /home/index.php on line 3
Array
Untuk menampilkan isinya, pilih fungsi yang sesuai:
Objek lebih ketat: kecuali class-nya mendefinisikan __toString(), echo $object; menghentikan script dengan Error: Object of class User could not be converted to string. Boolean juga sering mengejutkan: echo true; mencetak 1 dan echo false; tidak mencetak apa pun. Pakai var_dump($value) saat kamu perlu melihat tipe dan nilai yang persis.
Kesalahan umum: echo dengan tanda kurung dan koma
Karena echo terlihat seperti fungsi, orang menulis echo("a", "b");. Itu parse error, karena tanda kurung hanya membungkus satu ekspresi:
PHP Parse error: syntax error, unexpected token "," in /home/index.php on line 2
Hilangkan tanda kurungnya (echo "a", "b";) atau gabungkan nilainya (echo("a" . "b");). Hal yang sama berlaku untuk print, yang tidak pernah menerima nilai kedua, dengan atau tanpa tanda kurung.
Pertanyaan yang sering diajukan
Apa bedanya echo dan print di PHP?
Keduanya mencetak string. echo menerima beberapa nilai yang dipisahkan koma (echo $a, $b;) dan tidak mengembalikan apa pun; print menerima tepat satu nilai dan mengembalikan 1, jadi bisa dipakai di dalam ekspresi. Dalam praktiknya, echo dipakai hampir di mana-mana.
Apakah echo perlu tanda kurung?
Tidak. echo adalah konstruksi bahasa, bukan fungsi, jadi echo "Hi"; adalah bentuk yang normal. echo("Hi"); tetap bekerja karena tanda kurungnya hanya mengelompokkan satu ekspresi, tetapi echo("a", "b"); menghasilkan parse error.
Kenapa echo false tidak mencetak apa-apa?
echo mengonversi nilainya menjadi string, dan false menjadi string kosong "" sedangkan true menjadi "1". Untuk melihat nilai boolean-nya, pakai var_dump($x); (mencetak bool(false)) atau echo var_export($x, true); (mencetak false).
Apa arti <?= di PHP?
<?= $value ?> adalah short echo tag, identik dengan <?php echo $value; ?>. Tag ini selalu aktif sejak PHP 5.4 dan merupakan cara yang biasa untuk mencetak nilai di dalam template HTML.