


Masih tidak tahu tentang memasukkan dan memerlukan dalam PHP. Lihat artikel ini!
Artikel ini akan memberi anda pengenalan terperinci untuk disertakan dan diperlukan dalam PHP, supaya semua orang dapat memahami sepenuhnya sertakan dan perlukan. Mari lihat!
Dalam PHP, terdapat dua cara untuk memasukkan fail luaran iaitu sertakan dan memerlukan. Apakah perbezaan antara mereka?
Jika fail tidak wujud atau ralat berlaku, require menghasilkan ralat tahap E_COMPILE_ERROR dan atur cara berhenti berjalan. Termasuk hanya menjana amaran dan skrip akan terus dilaksanakan.
Ini adalah perbezaan utama antara mereka Dalam aspek lain, memerlukan pada asasnya sama seperti termasuk.
- Fail yang disertakan terlebih dahulu dicari mengikut laluan yang diberikan oleh parameter Jika tiada direktori (hanya nama fail) diberikan, ia dicari mengikut direktori yang ditentukan oleh include_path. Jika fail tidak ditemui di bawah include_path, include akhirnya akan mencari dalam direktori tempat fail skrip panggilan berada dan direktori kerja semasa
- Jika laluan ditakrifkan, sama ada laluan mutlak atau laluan relatif ke direktori semasa, include_path akan diabaikan sepenuhnya
- include_path ditakrifkan dalam php.ini
- Apabila fail disertakan, kod yang terkandung di dalamnya mewarisi skop pembolehubah baris include. Sejak itu, sebarang pembolehubah yang tersedia dalam fail panggilan pada baris itu juga tersedia dalam fail yang dipanggil. Walau bagaimanapun, semua fungsi dan kelas yang ditakrifkan dalam fail termasuk mempunyai skop global
Selain keperluan dan sertakan biasa, terdapat juga memerlukan_sekali dan sertakan_sekali fungsinya ialah:
- Jika fail telah dimasukkan, ia tidak akan disertakan lagi. Seperti yang ditunjukkan oleh nama pernyataan ini, hanya masukkan sekali
- boleh digunakan apabila fail yang sama mungkin disertakan lebih daripada sekali semasa pelaksanaan skrip, dan anda ingin memastikan bahawa ia hanya disertakan sekali untuk mengelakkan definisi semula fungsi , penugasan semula pembolehubah dan isu lain
Mari kita lihat beberapa contoh:
// a.php 不存在 include "a.php"; // warning // require "a.php"; // error echo 111; // 使用include时111会输出 // file1.php 中只有一行代码echo 'file1'; require_once 'includeandrequire/file1.php'; // file1 require_once 'includeandrequire/file1.php'; // noting include_once 'includeandrequire/file1.php'; // noting include_once 'includeandrequire/file1.php'; // noting require 'includeandrequire/file1.php'; // file1 require 'includeandrequire/file1.php'; // file1 require 'includeandrequire/file1.php'; // file1 require 'includeandrequire/file1.php'; // file1
Kita dapat melihat bahawa apabila _sekali pertama berjaya dimuatkan, sama ada memerlukan_sekali atau sertakan_sekali , fail ini tidak akan dimuatkan lagi. Tanpa _sekali, fail akan dimuatkan berulang kali.
file2.php <?php echo 'file2:' . $a, PHP_EOL; echo 'file2:' . $b, PHP_EOL; $b = "file2"; myFile.php <?php $a = 'myFile'; $b = 'youFile'; require_once 'includeandrequire/file2.php'; echo $a, PHP_EOL; echo $b, PHP_EOL; // 输出结果 // file2:myFile // file2:youFile // myFile // file2 file3.php <?php $c = 'file3'; myFile.php <?php function test(){ require_once 'includeandrequire/file3.php'; echo $c, PHP_EOL; // file3 } test(); echo $c, PHP_EOL; // empty
Fail yang disertakan boleh mendapatkan pembolehubah dalam fail induk, dan fail induk juga boleh mendapatkan pembolehubah dalam fail yang mengandungi Walau bagaimanapun, anda perlu memberi perhatian kepada kes khas _sekali.
function foo(){ require_once 'includeandrequire/file3.php'; return $c; } for($a=1;$a<=5;$a++){ echo foo(), PHP_EOL; } // file3 // empty // empty // empty // empty
Apabila menggunakan _sekali dan memuatkan dalam gelung, hanya kandungan dalam file3.php akan dikeluarkan buat kali pertama. Oleh kerana skop pembolehubah semasa berada dalam kaedah, selepas pemuatan pertama selesai, fail berikutnya tidak akan dimuatkan lagi Pada masa ini, tiada c dalam empat gelung seterusnya dan nilai lalainya kosong.
Jika fail dimuatkan menggunakan _sekali dalam dua kaedah pada masa yang sama, adakah kaedah kedua masih memuatkannya?
function test1(){ require_once 'includeandrequire/file1.php'; } function test2(){ require_once 'includeandrequire/file1.php'; } test1(); // file1 test2(); // empty
Maaf, hanya kaedah pertama akan berjaya dimuatkan, dan kaedah kedua tidak akan dimuatkan lagi.
Jadi, yang manakah lebih baik untuk kita gunakan dalam pembangunan harian?
- Dari segi kecekapan, _sekali perlu mengesahkan sama ada fail telah dimuatkan Kecekapan akan menjadi lebih rendah, tetapi ia tidak mutlak malah ia tidak dapat dilihat dengan mata kasar. jadi masalah kecekapannya boleh diabaikan. Dan ia membawa lebih banyak faedah daripada tanpa _sekali
- Berdasarkan prinsip kesilapan terlebih dahulu, adalah lebih baik untuk menggunakan memerlukan_sekali. Kerana selepas melaraskan tahap pelaporan ralat PHP untuk tidak memaparkan amaran, maklumat amaran termasuk tidak akan kelihatan, yang akan menyebabkan ralat tidak dapat diramalkan
- Apabila digunakan dalam kaedah, _sekali tidak boleh digunakan untuk memuatkan fail, terutamanya Apabila fail ini perlu digunakan dalam berbilang kelas atau kaedah, menggunakan _once boleh menyebabkan fail yang sama tidak dapat dimuatkan dalam kaedah berikutnya
- Apabila menggunakan memerlukan atau sertakan, sebaiknya jangan gunakan kurungan, walaupun ia Memang boleh digunakan, seperti termasuk ('xxx.php'); Kata kunci tersebut adalah kata kunci ekspresi, bukan kaedah sistem, jadi gunakan sertakan 'xxx.php' secara langsung
serta dan memerlukan fail jika terdapat sebarang pemulangan, anda boleh menggunakan pembolehubah untuk menerima data yang dikembalikan oleh retun Selain itu, mereka juga boleh memuatkan fail bukan PHP dan fail jauh (pemuatan jauh memerlukan memastikan allow_url_include dalam php.ini dihidupkan), seperti:
file4.php <?php return 'file4'; file4.txt 可以吧 myFile.php <?php $v = require 'includeandrequire/file4.php'; echo $v, PHP_EOL; // file4 include 'includeandrequire/file4.txt'; // 可以吧 include 'https://www.baidu.com/index.html'; // 百度首页的html代码
Di sini kita mempunyai pemahaman yang sangat mendalam termasuk dan memerlukan kedua-dua kaedah pemuatan fail tidak rumit, tetapi mereka juga terdedah kepada beberapa perangkap. perhatian harus diberikan kepadanya. Akhir sekali, berikut adalah bonus kecil, merangkumi kaedah untuk memuatkan semua fail dalam direktori sekaligus:
function include_all_once ($pattern) { foreach (glob($pattern) as $file) { require $file; } } include_all_once('includeandrequire/*');
测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/%E5%BD%BB%E5%BA%95%E6%90%9E%E6%98%8E%E7%99%BDPHP%E4%B8%AD%E7%9A%84include%E5%92%8Crequire.php
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Masih tidak tahu tentang memasukkan dan memerlukan dalam PHP. Lihat artikel ini!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
