Senin, 16 Juni 2014

PHP: Perbedaan Fungsi include(), require(), include_once() dan require_once()


PHP memiliki kemampuan untuk menyertakan file php lainnya ke dalam suatu program PHP. Tentunya kemampuan ini sangat berguna bagi programmer karena tidak perlu menuliskan suatu perintah yang diperlukan di setiap file berulang kali, cukup ditulis di satu file dan disertakan di file yang memerlukannya. Contoh bagian dari program PHP yang biasanya dituliskan di file terpisah dan disertakan di file-file lainnya adalah potongan program untuk melakukan koneksi ke database. Kita tentu sudah memahami bahwa koneksi ke database harus dilakukan terlebih dahulu sebelum kita berurusan dengan data yang disimpan di database.
Terkait dengan hal tersebut, PHP memiliki beberapa fungsi untuk menyertakan suatu file yaitu include(), require(), include_once() dan require_once(). Lalu apa perbedaan antara keempat fungsi tersebut? Dan sebaiknya kita menggunakan fungsi yang mana? Dalam tutorial singkat ini akan dijelaskan mengenai maksud dan perbedaan dari fungsi-fungsi tersebut serta kapan kita harus menggunakannya.

Perbedaan Fungsi include() dan require()

Terkait dengan fungsi include(), manual PHP menyatakan bahwa “The include statement includes and evaluates the specified file”. Artinya fungsi include() akan menyertakan dan mengevaluasi seluruh program yang ada di file yang disertakan. Jika terdapat error pada program yang disertakan, maka error akan ditampilkan di layar. Dan jika file yang disertakan ternyata tidak ditemukan (mungkin karena lokasi yang salah atau memang file tidak ada), maka program selanjutnya (setelah include) akan tetap dijalankan walaupun ditampilkan error.
Perhatikan contoh program koneksi.php sederhana berikut ini.

Code block   
  1. <?php
  2. mysql_connect("localhost", "root", "")
  3. mysql_select_db("demo");
  4. ?>

Dan berikut ini program test.php yang akan menyertakan file koneksi.php di atas menggunakan fungsi include()
Code block   
  1. <?php
  2. include "conn/koneksi.php";
  3. echo "Program setelah koneksi";
  4. ?>
Jika program test.php di atas dijalankan dan file koneksi.php berjalan dengan baik dan tidak ada error maka akan ditampilkan text “Program setelah koneksi” tanpa adanya error. Namun jika pada file koneksi.php ternyata tidak ditemukan, maka tulisan “Program setelah koneksi” tetap ditampilkan walaupun disertai error yang disebabkan karena file koneksi.php tidak ditemukan. Berikut ini contoh tampilannya.
include-1
Perintah require() pada dasarnya sama dengan perintah include(). Perbedaannya hanya terletak pada saat file yang disertakan tidak ditemukan, maka perintah-perintah selanjutnya tidak akan dijalankan. Perhatikan program test.php di atas. Jika perintah include pada baris ke-2 diganti dengan perintah “require” dan program koneksi.php tidak ditemukan, maka teks “Program setelah koneksi” tidak akan ditampilkan, melainkan hanya menampilkan error. Berikut ini contoh tampilannya.
include-2

Perbedaan Antara *_once dan Tanpa “once”

Lalu bagaimana perbedaan antara include() dengan include_once() serta require() dan require_once() ? Penambahan akhiran _once baik pada include maupun require akan memastikan bahwa file yang disertakan hanya dieksekusi sekali saja, walaupun file disertakan beberapa kali. Sebaliknya tanpa akhiran _once penyertaan file yang sama beberapa kali mungkin akan menyebabkan error.
Untuk lebih jelasnya perhatikan kedua program berikut ini.
Code block   
  1. <?php
  2. class Foo {
  3. var $bar = 10;
  4. function getBar() {
  5. return $bar;
  6. }
  7. }
  8. ?>

Contoh program test2.php yang menyertakan file foo.class.php  di atas sebanyak dua kali.
Code block   
  1. <?php
  2. require "foo.class.php";
  3. require "foo.class.php";
  4. echo "Program setelah pemanggilan";
  5. ?>

Pada saat program test2.php di atas dicoba, maka akan terjadi error akibat penyertaan file foo.class.php sebanyak dua kali, sehingga dianggap bahwa pendefinisian class Foo terjadi dua kali. Mendefinisikan suatu class dengan nama yang sama lebih dari satu kali akan mengakibatkan error. Berikut ini tampilan errornya.
include-3
Nah, untuk menghindari error di atas, kita dapat menambahkan akhiran once di fungsi include maupun require sehingga program hanya akan mengeksekusi penyertaan file sebanyak sekali. Silahkan ganti fungsi require pada baris 2 dan 3 program test2.php di atas dengan fungsi require_once dan cobalah kembali program test2.php. Tidak akan terjadi error.

Kesimpulan: Lalu Fungsi Mana yang Harus Digunakan?

Tentu kuncinya, gunakan sesuai kebutuhan. Saat kita akan menyertakan file yang memang harus dipastikan bahwa program pada file tersebut harus berjalan dengan baik sebelum bagian program yang lainnya, ya gunakanlah fungsi require. Contohnya adalah dalam menyertakan file berisi koneksi ke database atau file konfigurasi situs. Sebaliknya, saat file yang disertakan tidak mempengaruhi jalannya program yang lainnya, kita bisa menggunakan fungsi include. Sementara itu, penggunaan include_once atau require_once lebih disarankan untuk memastikan bahwa file yang disertakan tidak dieksekusi lebih dari sekali.
Semoga tutorial ini bermanfaat untuk kita semua dan berbagilah hal baik ke sebanyak-banyaknya orang maka kebahagiaan akan menghampiri Anda. Satu Karya untuk Indonesia!

Referensi

  1. Buku Gratis Pemrograman Web dengan PHP & MySQL. http://achmatim.net/buku-gratis/pemrograman-web-dengan-php-dan-mysql/
  2. PHP Manual: require. http://www.php.net/manual/en/function.require.php
  3. PHP Manual: include. http://www.php.net/manual/en/function.include.php
  4. PHP Manual: require_once. http://www.php.net/manual/en/function.require-once.php
  5. PHP Manual: include_once. http://www.php.net/manual/en/function.include-once.php
Sumber: http://achmatim.net/2012/12/16/mengenal-fungsi-php-untuk-pengambilan-data-mysql-mysql_fetch_/
 

Tidak ada komentar: