Rumah >pembangunan bahagian belakang >tutorial php >Memahami Perbezaan Antara include, require, include_once, and require_once dalam PHP

Memahami Perbezaan Antara include, require, include_once, and require_once dalam PHP

DDD
DDDasal
2025-01-05 21:41:41602semak imbas

Understanding the Differences Between include, require, include_once, and require_once in PHP

Apabila bekerja dengan PHP, salah satu tugas biasa yang anda akan hadapi ialah memasukkan fail luaran ke dalam skrip anda. PHP menyediakan beberapa mekanisme untuk tugasan ini, iaitu sertakan, memerlukan, sertakan_sekali, dan memerlukan_sekali. Kenyataan ini penting dalam memodulatkan kod dan membolehkan penggunaan semula fail merentas pelbagai bahagian aplikasi. Walau bagaimanapun, memahami perbezaan antara arahan ini adalah penting untuk menulis kod PHP yang cekap dan boleh diselenggara.

Artikel ini akan membimbing anda melalui setiap pernyataan ini, menerangkan tingkah laku mereka, menyerlahkan perbezaannya dan menyediakan kes penggunaan praktikal.


1. Termasuk Penyata

Apakah yang termasuk?

Pernyataan sertakan dalam PHP digunakan untuk memasukkan dan menilai fail yang ditentukan semasa pelaksanaan skrip. Jika fail ditemui, ia disertakan sekali dan dilaksanakan pada ketika itu dalam skrip.

Tingkah laku termasuk:

  • Jika fail yang ditentukan tidak ditemui, PHP mengeluarkan amaran (E_WARNING) tetapi meneruskan pelaksanaan skrip.
  • Mesej amaran akan termasuk laluan fail yang tidak ditemui.
  • Ia tidak menghentikan pelaksanaan skrip, jadi jika fail yang disertakan tidak kritikal, skrip boleh terus berjalan tanpa gangguan.

Kes Penggunaan termasuk:

Anda mungkin menggunakan sertakan apabila fail tidak penting kepada aliran program dan boleh diterima untuk meneruskan skrip walaupun jika fail itu tiada. Ini selalunya digunakan untuk fail yang tidak penting seperti templat pilihan, fail konfigurasi atau mekanisme pengelogan.

Contoh:

// Including a non-critical file
include 'header.php';  // This will continue if header.php is missing
echo "This part of the script will run regardless of the missing header file.";

Mengapa Gunakan termasuk?

  • Berguna apabila menyertakan fail pilihan seperti templat halaman atau konfigurasi yang tidak penting.
  • Membenarkan skrip terus berfungsi walaupun fail tidak boleh disertakan.

2. Pernyataan keperluan

Apakah yang diperlukan?

Seperti termasuk, pernyataan memerlukan digunakan untuk memasukkan dan menilai fail dalam PHP. Walau bagaimanapun, perbezaan utama adalah dalam cara ralat dikendalikan.

Tingkah laku memerlukan:

  • Jika fail tidak ditemui atau tidak boleh disertakan, PHP akan mengeluarkan ralat maut (E_COMPILE_ERROR), dan skrip akan menghentikan pelaksanaan serta-merta.
  • Tidak seperti sertakan, fail yang hilang akan menghentikan skrip jika ia kritikal.

Kes Penggunaan memerlukan:

Anda harus menggunakan require apabila fail yang disertakan adalah penting untuk kefungsian aplikasi. Sebagai contoh, fail konfigurasi yang menyediakan pemalar atau termasuk fungsi penting untuk aplikasi anda harus disertakan dengan memerlukan. Jika fail itu tiada, meneruskan pelaksanaan boleh membawa kepada tingkah laku atau kegagalan yang tidak dapat diramalkan.

Contoh:

// Including a non-critical file
include 'header.php';  // This will continue if header.php is missing
echo "This part of the script will run regardless of the missing header file.";

Mengapa Penggunaan memerlukan?

  • Apabila fail yang disertakan adalah penting untuk skrip berfungsi, seperti fail konfigurasi atau skrip sambungan pangkalan data.
  • Anda ingin memastikan bahawa skrip berhenti melaksanakan jika fail itu tiada, untuk mengelakkan ralat yang tidak dijangka atau ranap kemudian dalam skrip.

3. Penyata include_once

Apakah termasuk_sekali?

Pernyataan include_once adalah serupa dengan pernyataan include, dengan satu perbezaan utama: ia memastikan bahawa fail disertakan sekali sahaja semasa pelaksanaan skrip, tidak kira berapa kali pernyataan include_once dipanggil dalam kod.

Gelagat termasuk_sekali:

  • Ia akan cuba memasukkan fail sama seperti sertakan.
  • Jika fail itu telah dimasukkan sebelum ini dalam skrip semasa, ia tidak akan memasukkannya lagi.
  • Jika fail tidak ditemui, ia akan mengeluarkan amaran, sama seperti sertakan, tetapi skrip terus berjalan.

Kes Penggunaan include_once:

Anda biasanya akan menggunakan include_once apabila menyertakan fail yang mungkin mengandungi fungsi atau definisi kelas yang hanya perlu disertakan sekali, tidak kira berapa kali anda memanggil kemasukan. Sebagai contoh, anda tidak mahu memasukkan fail yang mentakrifkan kelas beberapa kali, kerana ini boleh membawa kepada ralat definisi semula.

Contoh:

// Including a critical file
require 'config.php';  // This will stop the script if config.php is missing
echo "This will not run if config.php is not found.";

Mengapa Gunakan include_once?

  • Menghalang kemasukan fail beberapa kali.
  • Berguna apabila mentakrifkan fungsi, kelas atau pemalar dalam fail yang sepatutnya disertakan sekali sahaja, seperti fail utiliti atau fail konfigurasi.

4. Pernyataan memerlukan_sekali

Apakah yang diperlukan_sekali?

Pernyataan require_once berfungsi sama seperti memerlukan, tetapi dengan tingkah laku tambahan untuk memastikan fail disertakan sekali sahaja semasa pelaksanaan skrip.

Tingkah laku memerlukan_sekali:

  • Ia akan cuba memasukkan fail seperti yang diperlukan.
  • Jika fail telah disertakan, ia tidak akan memasukkannya lagi, menghalang ralat definisi semula untuk kelas, fungsi atau pemalar.
  • Jika fail itu tiada, ia akan menyebabkan ralat maut, sama seperti memerlukan, menghentikan pelaksanaan skrip.

Kes Penggunaan require_once:

Anda harus menggunakan require_once apabila menyertakan fail penting yang mesti disertakan sekali sahaja, seperti fail sambungan pangkalan data, fail konfigurasi atau takrifan kelas. Ia adalah cara yang paling teguh dan selamat untuk memastikan fail kritikal disertakan sekali sahaja tanpa risiko definisi semula.

Contoh:

// Including a non-critical file
include 'header.php';  // This will continue if header.php is missing
echo "This part of the script will run regardless of the missing header file.";

Mengapa Gunakan require_once?

  • Apabila anda perlu memasukkan fail yang penting untuk skrip dan memastikan ia disertakan sekali sahaja, seperti fail konfigurasi atau definisi kelas.
  • Menghalang ralat takrifan semula dengan memastikan fail tidak disertakan beberapa kali.

Perbandingan termasuk, memerlukan, sertakan_sekali dan memerlukan_sekali

Statement Behavior if File is Missing Includes Only Once Error Type
include Warning, continues script No Warning (E_WARNING)
require Fatal error, halts script No Fatal error (E_COMPILE_ERROR)
include_once Warning, continues script Yes Warning (E_WARNING)
require_once Fatal error, halts script Yes Fatal error (E_COMPILE_ERROR)

Pengambilan Utama:

  • sertakan: Gunakan apabila fail adalah pilihan dan fail yang hilang tidak seharusnya menghentikan skrip.
  • memerlukan: Gunakan apabila fail kritikal dan skrip harus berhenti jika fail itu tiada.
  • include_once: Gunakan apabila fail adalah pilihan tetapi hanya perlu disertakan sekali untuk mengelakkan pertindihan.
  • require_once: Gunakan apabila fail kritikal dan mesti disertakan sekali sahaja.

Kesimpulan

Memilih pernyataan kemasukan yang betul bergantung pada jenis fail yang anda sertakan dan gelagat yang anda ingin kuatkan. memerlukan dan memerlukan_sekali biasanya digunakan untuk fail penting, manakala sertakan dan sertakan_sekali lebih sesuai untuk fail tidak kritikal. Menggunakan versi sekali penyataan ini membantu mengelakkan isu seperti ralat takrifan semula sekiranya terdapat berbilang kemasukan.

Dengan memahami perbezaan ini, anda boleh menulis kod PHP yang lebih dipercayai, modular dan bebas ralat, memastikan aplikasi anda berfungsi dengan betul walaupun semasa menangani fail yang hilang atau berganda.

Atas ialah kandungan terperinci Memahami Perbezaan Antara include, require, include_once, and require_once dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn