Program hello.php pada Chapter sebelumnya terlihat sederhana, tetapi ada beberapa keputusan struktur di dalamnya: tag pembuka diletakkan di baris pertama, tidak ada tag penutup di akhir berkas, dan seluruh isinya berupa kode PHP murni. Pada Chapter ini kita bedah anatomi berkas PHP secara formal: bagaimana interpreter membacanya, dari mana sampai ke mana kode dieksekusi, serta kebiasaan penulisan yang diikuti programmer PHP profesional. Memahami struktur sejak dini membuat kode Anda mudah dibaca orang lain — dan mudah diperbaiki diri sendiri tiga bulan kemudian.
Berkas PHP Adalah Berkas Teks Biasa #
Berkas .php hanyalah berkas teks biasa — tidak ada format biner, tidak ada header khusus, dan bisa dibuka oleh editor apa pun. Yang membuatnya “berkas PHP” adalah isi dan ekstensinya: interpreter PHP memproses kode di dalamnya, sedangkan ekstensi .php memberi tahu sistem dan server bahwa berkas tersebut layak diproses oleh PHP. Anda bebas menamai berkas dengan huruf kecil, angka, dan tanda hubung — kebiasaan yang umum adalah laporan-penjualan.php, bukan Laporan Penjualan.php, karena spasi dan kapitalisasi campuran menyulitkan pengetikan di terminal.
Satu berkas .php berisi satu program yang utuh: saat dijalankan, seluruh isinya diproses sekaligus dari baris pertama hingga baris terakhir.
Eksekusi Berjalan dari Atas ke Bawah #
Interpreter PHP mengeksekusi statement secara berurutan: baris pertama selesai, lalu baris kedua, lalu baris ketiga, sampai akhir berkas. Urutan ini menentukan apa yang tercetak di layar, sebagaimana contoh berikut:
<?php
echo "Baris pertama dieksekusi lebih dulu\n";
echo "Baris kedua menyusul\n";
$stokAwal = 12;
$terjual = 5;
$sisa = $stokAwal - $terjual;
echo "Stok awal: $stokAwal\n";
echo "Terjual: $terjual\n";
echo "Sisa stok: $sisa\n";Output yang Dihasilkan:
Baris pertama dieksekusi lebih dulu
Baris kedua menyusul
Stok awal: 12
Terjual: 5
Sisa stok: 7Mari kita telaah urutan eksekusinya:
- Baris 3-4: dua
echopertama mencetak teks sesuai urutan penulisan — tidak ada yang dilompati atau diurutkan ulang. - Baris 6-8: nilai disimpan ke variable
$stokAwal,$terjual, lalu$sisadihitung dari keduanya. Statement$sisa = $stokAwal - $terjual;baru bisa dijalankan setelah dua variable sebelumnya terisi — urutan penulisan yang salah akan membuat pembacaan nilai yang belum ada. - Baris 10-12: tiga
echoterakhir mencetak hasil perhitungan. Semua nilai sudah siap karena diletakkan di baris-baris sebelumnya.
Karena eksekusi selalu dari atas ke bawah, posisi sebuah baris kode adalah bagian dari logika program. Memindahkan baris $sisa = $stokAwal - $terjual; ke atas sebelum kedua variable diisi akan mengubah perilaku program — bukan sekadar tampilannya.
Zona Kode dan Zona Teks #
Isi berkas terbagi menjadi dua zona. Zona kode adalah bagian yang berada di antara tag <?php dan ?> — hanya bagian inilah yang dieksekusi sebagai PHP. Zona teks adalah segala yang berada di luar tag; zona ini tidak dieksekusi, melainkan dikeluarkan sebagai output apa adanya. Bukti paling nyata terlihat bila kita sengaja menulis kode tanpa tag pembuka:
echo "Halo dari luar mode PHP";Output yang Dihasilkan:
echo "Halo dari luar mode PHP";Teks echo "Halo..."; tercetak apa adanya — tanda kutip, titik koma, semuanya — karena tanpa <?php, interpreter menganggap seluruh berkas sebagai zona teks. Perilaku “di luar tag berarti output langsung” inilah yang kelak membuat PHP sangat praktis untuk menyisipkan kode di dalam halaman HTML; kita akan memanfaatkannya penuh pada Chapter PHP Tags.
Berkas PHP Murni dan Tag Penutup #
Berkas PHP terbagi dua gaya penggunaan. Berkas murni berisi kode PHP saja — seperti seluruh script CLI yang kita tulis di Section ini. Berkas bercampur bergantian antara zona teks dan zona kode, umum dipakai untuk halaman web. Untuk berkas murni, komunitas PHP memiliki kebiasaan yang tegas: jangan tulis tag penutup ?> di akhir berkas. Alasannya berhubungan dengan perilaku newline setelah tag penutup.
<?php
echo "Program ini tidak diakhiri tag penutup\n";Output yang Dihasilkan:
Program ini tidak diakhiri tag penutupBila Anda menulis ?> di akhir berkas, satu baris kosong yang tak sengaja tersisa setelahnya — entah dari editor, entah dari menekan Enter — ikut terkirim sebagai output. Pada script CLI akibatnya ringan saja, yaitu baris kosong tak terduga; tetapi pada program web, output liar sekecil apa pun dapat merusak pengiriman HTTP header, materi yang kita bahas jauh di Section Web Fundamentals. Dengan menghilangkan tag penutup, kemungkinan itu tertutup sejak awal: setelah tag pembuka terakhir tertutup kurung statement, sisanya pasti kode PHP.
Ringkasan #
Berkas PHP adalah berkas teks dengan ekstensi .php yang dieksekusi statement demi statement dari atas ke bawah. Isinya terbagi menjadi zona kode di antara tag dan zona teks di luar tag yang keluar sebagai output apa adanya. Untuk berkas murni PHP, tag penutup sengaja dihilangkan demi mencegah output liar. Dua zona tersebut punya aturan main yang jauh lebih kaya ketika bertemu HTML — mari kita masuk ke pembahasan PHP Tags.