PHP include(_once), require(_once), Mana yang Harus Saya Gunakan?

Sebelumnya kita ketahui dulu perbedaan include dan require. Perlu kita ketahui juga bahwa include maupun require bukanlah sebuah fungsi melainkan sebuah kontrol struktur, sama seperti if, else, foreach, while, switch, break, return, dll. Dan merupakan kontrol struktur spesial karena tidak membutuhkan tanda kurung disekitar argumennya.

include

incude umumnya digunakan untuk memuat Style / CSS, atau hal-hal yang dianggap pendukung. Yaitu misal jika tanpa CSS pun skrip dapat berjalan normal. Karena include tidak akan menghentikan eksekusi skrip jika gagal, seperti kasus file tidak ditemukan. Namun hanya menghasilkan E_WARNING.

require

require umumnya digunakan untuk memuat dependency, atau hal-hal yang dianggap penting. Seperti fungsi-fungsi, kelas-kelas, dll. Karena require akan menghentikan eksekusi skrip jika gagal dan menghasilkan E_COMPILE_ERROR.

Jika kita buat sendiri fungsi `require` dari include:

  1. function the_require($file) { 
  2.     if (!include $file) { 
  3.         exit; // hentikan eksekusi skrip jika gagal 
  4.     } 
  5. } 

Lalu bagaimana dengan include_once dan require_once? Akhiran _once itu sudah jelas menunjukkan bahwa proses include atau require hanya dilakukan sekali, berapapun include_once atau require_once digunakan.

include_once

Jika kita buat sendiri fungsi `include_once` dari include:

  1. function the_include_once($file) { 
  2.     static $included = array(); 
  3.     if (!in_array($file, $included)) { // jika belum pernah di-include 
  4.         if (include $file) { 
  5.             $included[] = $file; 
  6.         } 
  7.     } 
  8. } 

require_once

Jika kita buat sendiri fungsi `require_once` dari include:

  1. function the_require_once($file) { 
  2.     static $included = array(); 
  3.     if (!in_array($file, $included)) { // jika belum pernah di-include 
  4.         if (include $file) { 
  5.             $included[] = $file; 
  6.         } 
  7.         else { 
  8.             exit; // hentikan eksekusi skrip jika gagal 
  9.         } 
  10.     } 
  11. } 

Kesimpulan:

Dengan mengetahui perbedaan diatas, dapat kita simpulkan bahwa dari sisi performa yang tercepat adalah include, dan yang paling lambat adalah require_once. Mana yang harus kita gunakan? Menurut pengalaman saya sendiri, saya cenderung menggunakan require dimanapun, karena tidak membuat bingung dan jika ada kesalahan dalam koding akan lebih mudah ditemukan. Saya juga belum pernah menemukan suatu kasus dimana saya harus menggunakan *_once selama ber-PHP.