Series PHP: Perbedaan include, include_once, require, require_once di PHP

Profile
Yusuf Fazeri

7 September 2024

Series PHP: Perbedaan include, include_once, require, require_once di PHP

Jika kalian mengalami kebingungan penggunaan include, include_once, require dan require_once atau sering lupa kapan harus menggunakan salah satunya maka, kita berarti mengalami problem yang sama 🙃

Keempat keyword ini sama-sama memiliki fungsi yang sama, yaitu untuk melakukan impor kode di PHP. Meskipun mirip-mirip, mereka punya perbedaaan yang saya dan mungkin diantara kalian sering lupa atau gagal paham.

include vs require

Pada perintah impor menggunakan keyword includeketika file tidak ditemukan, PHP akan menampilkan Error Warning tanpa membuat program berhenti berjalan. Sedangkan ketika menggunakan require ketika file tidak ditemukan, PHP akan menampilkan Fatal Error dan program akan langsung berhenti berjalan.

Untuk praktiknya kita akan mulai membuat satu file dengan nama index.php. Selanjutnya buat kode seperti ini:

<?php // File: index.php include "header.php"; echo "Section untuk konten nanti disini!";

Lalu jalankan menggunakan built-in server php dengan perintah php -S localhost:3000 pada direktori tempat menyimpan file tadi.

Ketika saya jalankan di lokal komputer saya, hasilnya kurang lebih seperti ini:

Gambar 1

Pada Gambar 1 kita melihat pesan Error Warning, namun kode untuk output section konten masih jalan.

Mari kita bandingkan dengan menggunakan require. Sekarang modifikasi file index.php menjadi seperti ini.

<?php // File: index.php require "header.php"; echo "Section untuk konten nanti disini!";

Perintah impor yang menggunakan require ketika saya jalankan akan muncul Fatal Error seperti pada Gambar 2.

Gambar 2

Pada Gambar 2 Fatal Error muncul dan kode untuk output section konten tidak ditampilkan.

include sering digunakan ketika melakukan impor kode yang tidak terlalu kritis atau kalaupun tidak ditemukan filenya tidak mengganggu jalannya eksekusi kode program. Kasus yang paling banyak digunakan adalah untuk kebutuhan layouting. Biasanya untuk meringkas kode layout yang panjang sering kali kita membuatnya di file terpisah seperti header.php untuk header UI, footer.php untuk footer UI dan seterusnya. Ini cocok menggunakan include

require sering digunakan untuk melakukan impor kode yang sangat penting dan jika tidak ada filenya akan mengganggu jalannya eksekusi program. Kasus yang paling banyak digunakan adalah untuk kebutuhan impor file konfirgurasi atau dependensi (package)

Selanjutnya, kita akan coba melakukan impor lebih dari satu kali di index.php. Sekarang coba mari kita buat file header.php seperti ini:

<?php // File: header.php echo "[Ini adalah Header]" . "<br>";

Lalu ubah index.php menjadi seperti ini:

<?php // File: index.php require "header.php"; // Disini bisa diganti dengan include. Sama saja require "header.php"; // Disini bisa diganti dengan include. Sama saja echo "Section untuk konten nanti disini!";

Lalu outputnya akan seperti ini:

Gambar 3

Kedua perintah include dan require bisa digunakan berulang kali. Artinya ketika file header.php ada dan kita melakukan impor lebih dari satu kali pada file maka akan mengeksekusi kode di file header.php lebih dari satu kali juga.

Selanjutnya coba kita tambahkan fungsi di header.php. Untuk kodenya jadi seperti ini:

<?php // File: header.php function something() { return 'nah!'; } echo "[Ini adalah Header]" . "<br>";

Lalu lihat lagi outputnya. Sekarang kita dapat pesan Fatal Error cannot redeclare blabla seperti pada Gambar 4.

Gambar 4

Ini menandakan bahwa ketika kita impor berulang file yang sama, maka skrip akan dijalankan berulang kali.

include_once vs require_once

Keduanya digunakan ketika kita ingin memastikan impor dilakukan satu kali meskipun kita melakukannya berkali-kali. Berikut adalah contoh kode pada index.php ketika saya melakukan impor lebih dari satu kali dengan include_once atau require_once. Untuk file header.php tidak ada perubahan.

<?php // File: index.php require_once "header.php"; require_once "header.php"; echo "Section untuk konten nanti disini!";

Pada output yang terlihat di Gambar 5 kita tidak menjumpai pesan error apapun.

 Gambar 5

Hal yang sama akan terjadi ketika kita mencoba mengubahnya dengan include_once. Kode-kode itu tadi memastikan kita untuk mengimpor hanya satu kali.

Sekarang kalian bisa coba untuk melakukan impor dengan file program yang tidak ada. Output nya akan menampilkan pesan error yang sama ketika menggunakan perintah include dan require. Jika menggunakan include_once maka akan muncul Error Warning, tapi dengan require_once akan muncul Fatal Error kalau file tidak ditemukan.

Gimana? dengan penjelasan ini semoga kita lulus dari kebingungan ini. Jangan lupa like kalo kamu suka serta tinggalkan komentar ketika kamu ada pertanyaan.

What do you think?

Reactions