Pertanyaan Perbedaan antara membutuhkan, termasuk, require_once dan include_once?


Di PHP:

  • Kapan saya harus menggunakan require vs. include?
  • Kapan saya harus menggunakan require_once vs. include_once?

962
2018-03-10 16:13


asal


Jawaban:


Ada require dan include_once demikian juga.

Jadi pertanyaanmu seharusnya ...

  1. Kapan saya harus menggunakan require vs. include?
  2. Kapan saya harus menggunakan require_once vs. require

Jawaban untuk 1 dijelaskan sini.

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

Jawaban ke 2 dapat ditemukan sini.

Pernyataan require_once () identik dengan require () kecuali PHP akan memeriksa apakah file telah dimasukkan, dan jika demikian, tidak termasuk (memerlukan) lagi.


1172
2018-03-10 16:17



Menggunakan

  • memerlukan
    ketika file tersebut wajib oleh aplikasi Anda, mis. template pesan penting atau file yang berisi variabel konfigurasi tanpa mana aplikasi akan rusak.

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

  • termasuk ketika file tidak diperlukan dan alur aplikasi harus dilanjutkan ketika tidak ditemukan, mis.
    bagus untuk template yang merujuk variabel dari lingkup saat ini atau sesuatu

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

Tetapi pada dasarnya, terserah Anda kapan menggunakannya.


327
2018-03-10 16:25



Saran saya adalah hanya menggunakan require_once 99,9% dari waktu.

Menggunakan require atau include alih-alih menyiratkan bahwa kode Anda tidak dapat digunakan kembali di tempat lain, yaitu skrip yang Anda tarik sebenarnya menjalankan kode bukannya membuat tersedia kelas atau beberapa pustaka fungsi.

Jika Anda membutuhkan / termasuk kode yang mengeksekusi di tempat, itu 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, gunakan include_once sebagian besar akan menjadi menunda di mana di tumpukan Anda menemukan bug / kesalahan. Apakah Anda ingin tahu fungsi itu do_cool_stuff() tidak tersedia ketika Anda pergi untuk memanggilnya nanti, atau saat yang Anda harapkan akan tersedia dengan mewajibkan perpustakaan? Umumnya, yang terbaik adalah mengetahui segera jika sesuatu yang Anda butuhkan dan harapkan tidak tersedia, jadi gunakan saja require_once.

Atau, di OOP modern saja autoload kelas Anda saat digunakan.


269
2018-03-10 16:46



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

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


26
2018-03-10 16:18



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

require() akan melempar E_COMPILE_ERROR dan hentikan skrip jika tidak bisa menyertakan file.

Itu include_once() dan require_once() fungsi tidak akan menyertakan file untuk kedua kalinya jika sudah dimasukkan.

Lihat halaman dokumentasi berikut:


25
2017-11-03 11:48



Kapanpun kamu menggunakannya 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, di contoh 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 sekali dan untuk menelepon pada kedua kalinya ini akan diabaikan. Dan tanpa terhenti akan menampilkan output satu kali.

Setiap kali Anda menggunakan 'include_once () `dapat digunakan dalam file untuk memasukkan file lain ketika Anda membutuhkan file yang dipanggil lebih dari satu kali dalam file saat ini. Di sini, di 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.


18
2017-09-29 09:42



Gunakan "sertakan" untuk dapat digunakan kembali PHP template. Gunakan "require" untuk pustaka yang dibutuhkan.

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


16
2018-03-10 17:08



Perbedaannya adalah dalam kesalahan yang dihasilkan oleh perintah. Dengan require, file yang ingin Anda gunakan benar-benar diperlukan dan dengan demikian menghasilkan E_ERROR jika tidak ditemukan.

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

include hanya menghasilkan E_WARNING kesalahan jika gagal yang kurang lebih diam.

Jadi gunakan 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 di mana file yang sama mungkin disertakan dan dievaluasi lebih dari sekali selama eksekusi tertentu dari skrip, jadi dalam kasus ini dapat membantu menghindari masalah seperti fungsi redefinisi, penugasan nilai variabel, dll.

Sama berlaku untuk require_once() tentu saja.


Referensi: require(), include_once()


11
2018-03-10 16:20



Dengan meminta file harus ada, jika tidak maka kesalahan akan ditampilkan; sedangkan dengan include - jika file tidak ada maka halaman akan terus dimuat.


8
2018-03-10 16:24



Perlu bagian penting, seperti otorisasi dan sertakan semua yang lain.

Beberapa termasuk hanya desain yang sangat buruk dan harus dihindari sama sekali. Jadi, * _once tidak terlalu penting.


7
2018-03-10 17:04



memerlukan akan menghasilkan kesalahan fatal (E_COMPILE_ERROR) dan menghentikan skrip.

termasuk hanya akan menghasilkan peringatan (E_WARNING) dan skrip akan terus berlanjut.

Itu require_once pernyataan dapat digunakan untuk menyertakan file PHP di yang lain, ketika Anda mungkin perlu menyertakan file yang disebut lebih dari satu kali.

Jika a.php adalah skrip PHP yang memanggil b.php dengan pernyataan require_once (), dan tidak menemukan b.php, a.php menghentikan eksekusi, menyebabkan kesalahan fatal.


7
2017-07-31 06:08