Dalam PHP, fungsi include dan require mudah tertukar. Di bawah ini saya akan menggunakan contoh klasik untuk mengilustrasikan perbedaannya secara mendalam.
Ketika kita sering mengakses database, kita dapat menulis pernyataan koneksi ke dalam file
con_db.php
<?php
$dbh = mysql_connect('localhost','','');
mysql_select_db('permintaan adm');
?>
Dalam aplikasi sebenarnya, kita dapat memanggil file ini di dalam program.
Misalnya require("con_db.php") atau include("con_db.php)
, efek kedua fungsi tersebut hampir sama.
Namun jika menggunakan
filename.php
<?php
seperti ini
memerlukan("con_db.php")
fungsi kesenangan saya($par1,$par2)
{Berisi pernyataan untuk pemrosesan database}
.....
kesenanganku($par1,$par2);
.....
kesenanganku($p1,$p2);
?>
File tidak dapat terus dieksekusi ketika mencapai myfun, karena variabel eksternal tidak dapat diperoleh dalam fungsi (hal yang sama berlaku untuk penyertaan). Kecuali $dbh diteruskan ke fungsi sebagai variabel. Hal ini meningkatkan kompleksitas pemanggilan fungsi.
Kita dapat menyelesaikan masalah ini dengan memasukkan require atau include ke dalam fungsi tersebut.
Jika include digunakan, pemanggilan fungsi pertama pada file akan berjalan lancar, namun pemanggilan kedua tidak akan dijalankan. Alasannya adalah database tidak dapat dibuka kembali tanpa menutupnya. Dengan kata lain, con_db.php dijalankan dua kali. Ganti include dengan require dan semuanya baik-baik saja.
Dengan kata lain, require mirip dengan pra-scan. Ketika program dijalankan, baik di dalam atau di luar fungsi, file require akan dieksekusi terlebih dahulu dan hanya sekali. Dan include memanggil file tersebut setiap kali dieksekusi. Artinya, setelah eksekusi ini, saat berikutnya dieksekusi hingga saat ini, file tersebut akan dieksekusi lagi.
Oleh karena itu, jika ada pernyataan tertentu dalam sebuah loop yang hanya ingin Anda jalankan satu kali, Anda cukup menyertakannya dengan require.