Perbedaan antara mengharuskan, sertakan, require_once dan include_once?

1213

Dalam PHP:

  • Ketika saya harus menggunakan requirevs include?
  • Ketika saya harus menggunakan require_oncevs include_once?
Scott B
sumber
3
PHP CodeSniffer mengatakan, jika file dimasukkan secara kondisional, gunakan include_once (alih-alih require_once).
Farhad

Jawaban:

1426

Ada requiredan include_oncejuga.

Jadi pertanyaan Anda seharusnya ...

  1. Ketika saya harus menggunakan requirevs include?
  2. Kapan saya harus menggunakan require_oncevs.require

Jawaban ke 1 dijelaskan di sini .

Fungsi memerlukan () identik dengan menyertakan (), kecuali bahwa ia menangani kesalahan secara berbeda. Jika kesalahan terjadi, fungsi include () menghasilkan peringatan, tetapi skrip akan melanjutkan eksekusi. Wajib () menghasilkan kesalahan fatal, dan skrip akan berhenti.

Jawaban ke 2 dapat ditemukan di sini .

Pernyataan require_once () identik dengan mengharuskan () kecuali PHP akan memeriksa apakah file tersebut telah disertakan, dan jika demikian, tidak termasuk (perlu) lagi.

Leo
sumber
58
Pikiran yang membutuhkan () dieksekusi lebih cepat daripada require_once (), jadi jika Anda yakin tidak ada duplikat, termasuk gunakan persyaratan ().
dialex
48
@DiAlex, require_once lebih lambat, tetapi hampir tidak dapat diukur.
Kontrak Prof. Falken dilanggar pada
77
@DiAlex ... dan, jika ternyata file tersebut, pada kenyataannya, sudah termasuk, maka require_once()akan menjadi yang lebih cepat dari keduanya
Tom
11
@ Prof.Falken Dalam keadaan apa seseorang memerlukan file yang sama lebih dari sekali ?? Saya tidak dapat memikirkan satu pun di dalam pola pikir saya saat ini.
Weishi Zeng
17
@WeishiZeng untuk laman web, mungkin ada cuplikan HTML yang ingin Anda sertakan lebih dari sekali.
James Beninger
406

Menggunakan

  • mengharuskan
    ketika file diperlukan oleh aplikasi Anda, misalnya templat pesan penting atau file yang mengandung variabel konfigurasi yang tanpanya aplikasi akan rusak.

  • require_once
    ketika file berisi konten yang akan menghasilkan kesalahan pada inklusi berikutnya, misalnya function important() { /* important code */}pasti diperlukan dalam aplikasi Anda tetapi karena fungsi tidak dapat dideklarasikan ulang tidak boleh dimasukkan lagi.

  • termasuk ketika file tidak diperlukan dan aliran aplikasi harus dilanjutkan ketika tidak ditemukan, misalnya
    bagus untuk template yang mereferensikan variabel dari lingkup saat ini atau sesuatu

  • include_once
    dependensi opsional yang akan menghasilkan kesalahan pada pemuatan berikutnya atau mungkin penyertaan file jarak jauh yang Anda tidak ingin terjadi dua kali karena overhead HTTP

Namun pada dasarnya, terserah Anda kapan harus menggunakan yang mana.

Gordon
sumber
Saya memiliki koneksi PDO (ke basis data) . Haruskah saya menggunakan yang mana? include? include_once? require? require_once?
Shafizadeh
6
Ini harus menjadi jawaban yang diterima karena menjawab pertanyaan singkat dan tautan ke manual resmi, alih-alih jawaban lain hanya menghubungkan w3sekolah.
Daniel W.
9
beri saya alasan mengapa Anda memasukkannya jika tidak perlu?
Francisco Ochoa
1
Saya menggunakan template untuk tata letak halaman umum yang memiliki bagian seperti header, kolom, footer dll. Ini memungkinkan saya untuk melayani template itu untuk setiap halaman di situs dan saya hanya perlu membuat file dalam struktur folder halaman menentukan apa harus masuk ke masing-masing posisi tersebut. Jika saya memutuskan bahwa halaman tidak memerlukan bilah sisi saya hanya meninggalkan file di folder untuk halaman itu dan template masih berfungsi dengan baik tanpa file itu ada.
James Coyle
301

Saran saya adalah gunakan hanya require_once99,9% dari waktu.

Menggunakan requireatau includesebaliknya menyiratkan bahwa kode Anda tidak dapat digunakan kembali di tempat lain, yaitu bahwa skrip yang Anda tarik benar - benar menjalankan kode alih-alih menyediakan kelas atau beberapa pustaka fungsi.

Jika Anda memerlukan / menyertakan kode yang dijalankan saat itu juga, itu adalah kode prosedural, dan Anda perlu mengenal paradigma baru . Seperti pemrograman berorientasi objek, pemrograman berbasis fungsi, atau pemrograman fungsional.

Jika Anda sudah melakukan OO atau pemrograman fungsional, include_oncesebagian besar menggunakan akan menunda di mana dalam tumpukan Anda menemukan bug / kesalahan. Apakah Anda ingin tahu bahwa fungsi do_cool_stuff()tersebut tidak tersedia ketika Anda memanggilnya nanti, atau saat Anda mengharapkannya tersedia dengan meminta perpustakaan? Secara umum, yang terbaik adalah segera mengetahui jika sesuatu yang Anda butuhkan dan harapkan tidak tersedia, jadi gunakan saja require_once.

Atau, dalam OOP modern, hanya autoload kelas Anda pada saat pemakaian.

Kzqai
sumber
41
+1 Ini harus menjadi jawaban yang diterima. Poin utama adalah bahwa includekeluarga biasanya merupakan ide buruk (karena sangat jarang untuk menyertakan file yang kemungkinan tidak ada), dan bahwa dari require_oncedan require, Anda harus menggunakan require_oncesaat memasukkan file yang menentukan fungsi atau kelas yang akan digunakan di tempat lain, atau instantiate lajang seperti objek koneksi database, dan gunakan requireuntuk memasukkan file yang segera melakukan hal-hal ketika mereka dimasukkan. Dalam aplikasi web besar apa pun, jenis yang terakhir termasuk tidak biasa.
Mark Amery
7
+1 (punya lencana emas lain;)) Setuju bahwa masuk akal require_oncekemungkinan besar akan digunakan hampir sepanjang waktu. Mengingat perbedaan kecil di antara pilihan, requirememastikan skrip berhenti, saya tidak bisa memikirkan banyak skenario di mana aplikasi dapat bertahan tanpa file dimasukkan. Dan _oncemelindungi dari masalah penipuan. Siapa pun yang tidak setuju kemungkinan tahu apa yang mereka lakukan sehingga dapat memilih mana yang sesuai dengan aplikasi atau skenario.
James
hei saya punya file yang kadang-kadang dimasukkan dalam halaman indeks dan man time disebut langsung (home.php) ........... sekarang saya sudah memasukkan file konfigurasi pada halaman indeks dengan fungsi yang diperlukan sekarang saya dapat menggunakan require_once di home.php untuk mencegah kembali memasukkan
Ravinder Payal
@RavinderPayal Nah, saran pertama saya adalah menyelamatkan diri Anda dari sakit kepala dengan menggunakan front-controller! Hanya karena pengguna memanggil example.com/home tidak berarti Anda harus memiliki home.php yang benar-benar terpisah! Sebagai gantinya / home / seharusnya hanya merutekan melalui pengontrol depan index.php atau front.php. Hanya php yang benar-benar memungkinkan untuk pendekatan oldschool "satu skrip per halaman" lagi, dan percayalah, itu bukan cara terbaik. Tetapi jika Anda HARUS memiliki home.php dan index.php yang terpisah, maka segala sesuatu yang MUNGKIN KEDUA harus dalam file atau templat perpustakaan, ../templates/home.tpl atau ../view/home.view.php kamu tahu?
Kzqai
SNS dan saya memilih satu file satu pendekatan halaman awalnya untuk pengembangan mudah dan setumpuk besar file yang saya tidak dapat membuat kembali dan sekarang saya memecahkan masalah itu dan alasan lain melakukan satu file satu halaman adalah kecepatan dan kurang kontak dengan hard disk oleh mengurangi jumlah termasuk
Pembayaran Ravinder
36

Perbedaan antara fungsi _once dan tanpa fungsi _once: tanpa kode _once akan dimasukkan lagi sedangkan dengan fungsi _once, PHP melacak file-file yang disertakan dan hanya akan memasukkannya sekali saja.

Perbedaan antara keharusan dan termasuk: Jika file yang diperlukan tidak ditemukan, PHP akan memunculkan kesalahan fatal sedangkan untuk menyertakan hanya peringatan yang akan dipancarkan.

Sebastian
sumber
1
Wow pendek dan sederhana!
Vlad
31

include() akan memberikan peringatan jika tidak dapat memasukkan file, tetapi sisa skrip akan berjalan.

require()akan membuang E_COMPILE_ERRORdan menghentikan skrip jika tidak dapat menyertakan file.

Fungsi include_once()dan require_once()tidak akan menyertakan file untuk kedua kalinya jika sudah disertakan.

Lihat halaman dokumentasi berikut:

Polinomial
sumber
22

Setiap kali Anda menggunakan require_once()dapat digunakan dalam file untuk memasukkan file lain ketika Anda membutuhkan file yang dipanggil hanya satu kali dalam file saat ini. Di sini, dalam contoh ini saya memiliki test1.php.

<?php  
echo "today is:".date("Y-m-d");  
?>  

dan di file lain yang saya beri nama test2.php

<?php  
require_once('test1.php');  
require_once('test1.php');  
?>

saat Anda menonton m yang membutuhkan file test1 dua kali tetapi file akan menyertakan test1 satu kali dan untuk panggilan pada saat kedua ini akan diabaikan. Dan tanpa henti akan menampilkan output satu kali.

Setiap kali Anda menggunakan 'include_once () `dapat digunakan dalam file untuk memasukkan file lain saat Anda membutuhkan file yang dipanggil lebih dari sekali dalam file saat ini. Di sini, dalam contoh saya memiliki file bernama test3.php.

<?php  
echo "today is:".date("Y-m-d");  
?> 

Dan di file lain yang saya beri nama test4.php

<?php  
include_once('test3.php');  
include_once('test3.php');  
?>

saat Anda menonton m termasuk file test3 akan menyertakan file satu kali tetapi menghentikan eksekusi lebih lanjut.

AliMohsin
sumber
'contoh lebih baik daripada nasihat'
Ramesh Kithsiri HettiArachchi
19

Gunakan "termasuk" untuk templat PHP yang dapat digunakan kembali . Gunakan "wajib" untuk perpustakaan yang dibutuhkan.

"* _once" bagus, karena memeriksa apakah file sudah dimuat atau tidak, tetapi hanya masuk akal bagi saya di "require_once".

mo.
sumber
18

Anda harus menyimpan definisi kelas dan fungsi dalam file.

Gunakan require_once()untuk memuat dependensi (kelas, fungsi, konstanta).

Gunakan require()untuk memuat file seperti template .

Gunakan include_once()untuk memuat dependensi opsional (kelas, fungsi, konstanta).

Gunakan include()untuk memuat file seperti templat opsional .

Tiberiu-Ionuț Stan
sumber
16

Sebuah jawaban setelah 7 tahun untuk 2018

Pertanyaan ini diajukan tujuh tahun lalu, dan tidak ada jawaban yang memberikan bantuan praktis untuk pertanyaan itu. Dalam pemrograman PHP modern Anda terutama menggunakan required_oncehanya sekali untuk memasukkan kelas autoloader Anda (sering komposer autoloader), dan itu akan memuat semua kelas dan fungsi Anda (file fungsi harus secara eksplisit ditambahkan ke composer.jsonfile agar tersedia di semua file lain). Jika karena alasan apa pun kelas Anda tidak dapat dimuat dari autoloader yang Anda gunakan require_onceuntuk memuatnya.

Ada beberapa kesempatan yang perlu kita gunakan require. Misalnya, jika Anda memiliki definisi array yang sangat besar dan Anda tidak ingin menambahkan ini ke kode sumber definisi kelas Anda, Anda dapat:

 <?php
// arr.php
return ['x'=>'y'];

 <?php
//main.php
$arr= require 'arry.php'

Jika file yang ingin Anda sertakan berisi sesuatu yang dapat dieksekusi atau mendeklarasikan beberapa variabel, Anda hampir selalu perlu menggunakannya require, karena jika Anda menggunakanrequire_once selain dari tempat pertama kode Anda tidak akan dieksekusi dan / atau variabel Anda tidak akan dijalankan secara diam-diam, menyebabkan bug yang benar-benar sulit untuk ditentukan.

Tidak ada kasus penggunaan praktis untuk includedan include_oncesungguh.

PHPst
sumber
+1 untuk menyebutkan autoloader. Namun kalimat terakhir itu bisa diperdebatkan. Cukup sering Anda akan menggunakan include(), dibungkus dengan buffer output untuk mengimplementasikan mesin templating Anda.
haz
Juga, mengingat editor teks modern dan PHP modern, hampir tidak ada yang menggunakan require()untuk membagi file besar.
haz
Saya menghadapi masalah yang sama ketika menggunakan require_onceuntuk PHPMailer di dalam suatu fungsi, dan autoloader saya mendefinisikan $mailvariabel yang diperlukan kemudian dalam kode, sehingga selanjutnya require_oncediabaikan, yang tersisa $mailtidak diinisialisasi! solusinya adalah dengan hanya menggunakan requiresetelah pemanggilan fungsi.
Youssef
@ haz Apakah ada alasan mengapa Anda tidak menggunakannya require?
PHPst
@ChristofferBubach LOL.
PHPst
15

Perbedaannya terletak pada kesalahan yang dihasilkan perintah. Dengan require, file yang ingin Anda gunakan benar-benar diperlukan dan dengan demikian menghasilkan E_ERRORjika tidak ditemukan.

require()identik dengan include() kecuali pada kegagalan itu juga akan menghasilkan E_ERROR kesalahan tingkat fatal .

includehanya menghasilkan E_WARNINGkesalahan jika gagal yang lebih atau kurang diam.

Jadi gunakan itu jika file diperlukan untuk membuat kode yang tersisa berfungsi dan Anda ingin skrip gagal file tidak tersedia.


Untuk *_once():

include_once() dapat digunakan dalam kasus-kasus di mana file yang sama dapat dimasukkan dan dievaluasi lebih dari satu kali selama eksekusi skrip tertentu, jadi dalam kasus ini dapat membantu menghindari masalah seperti redefinisi fungsi, penugasan kembali nilai variabel, dll.

Hal yang sama berlaku require_once()tentu saja.


Referensi: require(),include_once()

Felix Kling
sumber
requirememberi E_COMPILE_ERROR, bukan E_ERROR.
Yousha Aleayoub
Sepertinya itu berubah dalam 7 tahun terakhir.
Felix Kling
9

Dengan mengharuskan file harus ada, jika tidak maka kesalahan akan ditampilkan; sedangkan dengan menyertakan - jika file tidak ada maka halaman akan terus memuat.

Brian
sumber
8

Membutuhkan bagian-bagian penting, seperti otorisasi dan menyertakan semua yang lain.

Beragam adalah desain yang sangat buruk dan harus dihindari sama sekali. Jadi, * _cece tidak terlalu penting.

Akal Sehat Anda
sumber
7

Sertakan / Wajibkan Anda dapat memasukkan file yang sama lebih dari sekali juga:

membutuhkan () identik dengan menyertakan () kecuali pada kegagalan itu juga akan menghasilkan kesalahan tingkat E_COMPILE_ERROR fatal. Dengan kata lain, itu akan menghentikan skrip sedangkan include () hanya mengeluarkan peringatan (E_WARNING) yang memungkinkan skrip untuk melanjutkan.

require_once / include_once

identik dengan menyertakan / mengharuskan kecuali PHP akan memeriksa apakah file tersebut telah disertakan, dan jika demikian, tidak termasuk (memerlukan) lagi.

Marcx
sumber
5

include()akan menghasilkan peringatan ketika tidak menemukan file, tetapi require_once()akan menghasilkan kesalahan fatal.

Hal lain adalah jika file disertakan sebelumnya. Maka require_once()tidak akan memasukkannya lagi.

Rukmi Patel
sumber
5

Saya menggunakan fungsi seperti di bawah ini:

function doSomething() {
    require_once(xyz.php);
    ....
}

Ada nilai konstan yang dideklarasikan di xyz.php.

Saya harus memanggil fungsi doSomething () ini dari file skrip PHP lain.

Tapi saya mengamati perilaku saat memanggil fungsi ini dalam satu lingkaran, untuk iterasi pertama doSomething () mendapatkan nilai-nilai konstan xyz.php, tetapi kemudian setiap iterasi doSomething()tidak bisa mendapatkan nilai-nilai konstan yang dinyatakan dalamxyz.php .

Saya memecahkan masalah saya dengan beralih dari require_once() ke include(), doSomething()kode yang diperbarui adalah seperti di bawah ini:

function doSomething() {
    include(xyz.php);
    ....
}

Sekarang setiap panggilan iterasi untuk doSomething()mendapatkan nilai konstan didefinisikan dalam xyz.php.

pcj
sumber
4

Dari manual :

require()identik dengan include()kecuali pada kegagalan itu juga akan menghasilkan E_COMPILE_ERRORkesalahan tingkat fatal . Dengan kata lain, itu akan menghentikan skrip sedangkan include()hanya memancarkan peringatan ( E_WARNING) yang memungkinkan skrip untuk melanjutkan.

Hal yang sama berlaku untuk _once()varian.

Ferdinand Beyer
sumber
4

Di zaman PSR-0 / PSR-4autoloaders, mungkin sama sekali tidak perlu menggunakan pernyataan apa pun jika semua yang Anda butuhkan adalah membuat beberapa fungsi / kelas tersedia untuk kode Anda (tentu saja, Anda masih perlu require_onceautoloader sendiri dalam file bootstrap Anda dan includetemplat jika Anda masih menggunakan PHP sebagai mesin templat).

mp31415
sumber
3

 

  1. Kapan seseorang harus menggunakan requireatau include?

    Fungsi requiredan includemelakukan tugas yang sama, yaitu termasuk dan mengevaluasi file yang ditentukan, tetapi perbedaannya requireakan menyebabkan kesalahan fatal ketika lokasi file yang ditentukan tidak valid atau untuk kesalahan apa pun sedangkan includeakan menghasilkan peringatan dan melanjutkan eksekusi kode.

    Jadi Anda dapat menggunakan requirefungsi dalam kasus di mana file yang Anda coba sertakan adalah jantung dari sistem dan dapat menyebabkan dampak besar pada sisa kode dan Anda dapat menggunakaninclude fungsi ketika file yang Anda coba sertakan adalah file sederhana yang mengandung beberapa kode yang kurang penting.

    Dan rekomendasi pribadi saya (untuk kode yang kurang penting) adalah untuk pergi ke requirefungsi di mana-mana dalam kode Anda saat sedang dalam tahap pengembangan sehingga Anda dapat men-debug kode dan kemudian mengganti semua requirefungsi dengan includefungsi sebelum memindahkannya ke produksi sehingga jika Anda melewatkan bug apa pun yang tidak akan memengaruhi pengguna akhir dan sisa kode dijalankan dengan benar ...

  2. Kapan harus menggunakan require_onceataurequire?

    Perbedaan mendasar antara requiredan require_onceadalah require_onceakan memeriksa apakah file tersebut sudah termasuk atau tidak jika itu sudah termasuk maka tidak akan menyertakan file sedangkanrequire fungsi akan mencakup file terlepas dari apakah file sudah termasuk atau tidak.

    Jadi dalam kasus di mana Anda ingin memasukkan beberapa kode lagi dan lagi menggunakan requirefungsi sedangkan jika Anda ingin memasukkan beberapa kode hanya sekali dalam kode Anda, gunakan require_once.

Akshay Khale
sumber
2
  1. Gunakan fungsi yang diperlukan saat Anda perlu memuat kelas, fungsi, atau ketergantungan apa pun.

  2. Gunakan fungsi sertakan saat Anda ingin memuat file bergaya template

Jika Anda masih bingung, cukup gunakan require_once untuk selamanya.

James Wong
sumber
1

Itu semua cara memasukkan file.

Membutuhkan berarti membutuhkannya. Require_once berarti akan membutuhkannya tetapi hanya membutuhkannya satu kali. Include berarti akan menyertakan file tetapi tidak perlu melanjutkan.

Contoh:

Require 'filename'
Require_once 'filename'
Include 'filename'

Ada juga fungsi include_once yang mencakup file sekali.

Include_once 'filename'

Jangan gunakan huruf kapital di tempat saya miliki karena saya mengetik dari ponsel saya.

Joshua Charles Pickwell
sumber
1

satu hal yang saya perhatikan, ketika menggunakan include saya hanya dapat mengakses fungsi file yang disertakan dari file yang memasukkannya. Dengan require_once, saya bisa menjalankan fungsi itu dalam file required_once kedua.

juga: Saya sarankan menambahkan

if(file_exists($RequiredFile)){
    require_once($RequiredFile);
}else{
  die('Error: File Does Not Exist');
}

Karena ketika require_once membunuh halaman, kadang-kadang dapat menggemakan direktori file situs web Anda

Berikut adalah fungsi khusus yang saya buat untuk meminta file:

function addFile($file, $type = 'php', $important=false){
    //site-content is a directory where I store all the files that I plan to require_once
    //the site-content directory has "deny from all" in its .htaccess file to block direct connections
    if($type && file_exists('site-content/'.$file.'.'.$type) && !is_dir('site-content/'.$file.'.'.$type)){
        //!is_dir checks that the file is not a folder
        require_once('site-content/'.$file.'.'.$type);
        return 'site-content/'.$file.'.'.$type;
    }else if(!$type && file_exists('site-content/'.$file) && !is_dir('site-content/'.$file)){
        //if you set "$type=false" you can add the file type (.php, .ect) to the end of the "$file" (useful for requiring files named after changing vars)
        require_once('site-content/'.$file);
        return 'site-content/'.$file;
    }else if($important){
        //if you set $important to true, the function will kill the page (which also prevents accidentally echoing the main directory path of the server)
        die('Server Error: Files Missing');
        return false;
    }else{
        //the function returns false if the file does not exist, so you can check if your functions were successfully added
        return false;
    }
}

contoh penggunaan:

$success = addFile('functions/common');

if($success){
    commonFunction();
}else{
    fallbackFunction();
}
SwiftNinjaPro
sumber
0

Pada dasarnya, jika Anda memerlukan jalur yang salah, PHP melempar kesalahan fatal dan fungsi shutdown dipanggil, tetapi ketika Anda memasukkan jalur yang salah, PHP akan melanjutkan eksekusi, tetapi itu hanya akan menampilkan peringatan bahwa file tersebut tidak ada.

Dari kata bahasa Inggris yang diperlukan , PHP diberitahu bahwa pelaksanaan halaman atau file tergantung pada file yang diperlukan.

Dari pengalaman saya, itu normal untuk memerlukan file penting seperti file konfigurasi, kelas basis data dan utilitas penting lainnya.

Rotimi
sumber
0

Sering kali masalah apakah Anda ingin memuat pustaka klien secara kondisional, atau teruskan dan muat apakah Anda akan menggunakannya atau tidak.

Inilah contoh nyata; menguraikan apa kata PCJ.

Katakanlah Anda memiliki file konfigurasi yang menyimpan nama pengguna dan kata sandi basis data Anda (conf.php):

<?php
//my site configuration file

//For Database
$location='localhost';
$dbuser='yourname';
$userpw='yourpassword';
$database='nameofdatabase';
?>

Dan kelas dengan fungsi statis yang menggunakan database:

<?php
class UsedInLoop {
    public static function databaseQuery(){
        require(/path/to/conf.php);                //require_once will not work here
        $db = new mysqli($location, $dbuser, $userpw, $database);
        //yada yada yada
    }
}
?>

Dan fungsi statis itu digunakan di dalam fungsi lain yang disebut iteratif di dalam loop:

<?php
require_once('path/to/arbitraryObject.php');  //either will likely be OK at this level
$obj = new arbitraryObject();
foreach($array as $element){
    $obj->myFunction();
}
?>

Anda hanya dapat meminta / memasukkan kelas satu kali. Jika Anda memerlukan / memasukkannya pada setiap iterasi dari loop Anda, Anda akan mendapatkan kesalahan. Namun, Anda harus memasukkan file conf Anda setiap kali fungsi statis dipanggil.

<?php
class arbitraryObject {
    public function myFunction(){
        require_once(/path/to/UsedInLoop.php);   //This must be require_once. require() will not work
        UsedInLoop::databaseQuery();
    }
}
?>

Tentu saja, memindahkannya di luar fungsi bisa menjadi solusi untuk masalah itu:

<?php
require(/path/to/UsedInLoop.php);   //now require() is fine   
class arbitraryObject {
    public function myFunction(){
        UsedInLoop::databaseQuery();
    }
}
?>

Kecuali jika Anda khawatir dengan overhead memuat kelas yang mungkin hanya digunakan dalam kondisi tertentu dan tidak ingin memuatnya saat tidak.

Adam Winter
sumber
-1

requirememiliki overhead yang lebih besar daripada include, karena harus mem-parsing file terlebih dahulu. Mengganti requiresdengan includessering merupakan teknik optimasi yang baik.

Bink
sumber
2
Saya tahu ini komentar yang terlambat, tetapi ini sebenarnya tidak benar. requiretidak mem-parsing file lebih dari includetidak. The _onceversi fungsi-fungsi masing-masing memiliki sedikit overhead, tapi seperti orang lain berkata, dekat dengan diabaikan dalam sebagian besar aplikasi.
ahouse101
-2

Cukup gunakan wajib dan sertakan.

Karena pikirkan bagaimana cara kerjanya dengan include_once atau require_once. Itu mencari data log yang menyimpan file PHP yang disertakan atau diperlukan. Jadi itu lebih lambat daripada memasukkan dan membutuhkan.

if (!defined(php)) {
    include 'php';
    define(php, 1);
}

Hanya menggunakan seperti ini ...

Ruke GiPyeong Lee
sumber