Rumah pembangunan bahagian belakang tutorial php Masih tidak tahu tentang memasukkan dan memerlukan dalam PHP. Lihat artikel ini!

Masih tidak tahu tentang memasukkan dan memerlukan dalam PHP. Lihat artikel ini!

Jul 30, 2021 pm 05:57 PM
include php require

Artikel ini akan memberi anda pengenalan terperinci untuk disertakan dan diperlukan dalam PHP, supaya semua orang dapat memahami sepenuhnya sertakan dan perlukan. Mari lihat!

Masih tidak tahu tentang memasukkan dan memerlukan dalam PHP. Lihat artikel ini!

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
Salin selepas log masuk

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 &#39;file2:&#39; . $a, PHP_EOL;
echo &#39;file2:&#39; . $b, PHP_EOL;
$b = "file2";

myFile.php

<?php

$a = &#39;myFile&#39;;
$b = &#39;youFile&#39;;
require_once &#39;includeandrequire/file2.php&#39;;
echo $a, PHP_EOL;
echo $b, PHP_EOL;

// 输出结果
// file2:myFile
// file2:youFile
// myFile
// file2

file3.php
<?php

$c = &#39;file3&#39;;

myFile.php
<?php
function test(){
    require_once &#39;includeandrequire/file3.php&#39;;
    echo $c, PHP_EOL; // file3
}
test();
echo $c, PHP_EOL; // empty
Salin selepas log masuk

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 &#39;includeandrequire/file3.php&#39;;
    return $c;
}

for($a=1;$a<=5;$a++){
    echo foo(), PHP_EOL;
}

// file3
// empty
// empty
// empty
// empty
Salin selepas log masuk

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 Masih tidak tahu tentang memasukkan dan memerlukan dalam PHP. Lihat artikel ini!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 &#39;includeandrequire/file1.php&#39;;
}
function test2(){
    require_once &#39;includeandrequire/file1.php&#39;;
}
test1(); // file1
test2(); // empty
Salin selepas log masuk

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 &#39;file4&#39;;

file4.txt
可以吧

myFile.php
<?php
$v = require &#39;includeandrequire/file4.php&#39;;
echo $v, PHP_EOL; // file4

include &#39;includeandrequire/file4.txt&#39;;
// 可以吧

include &#39;https://www.baidu.com/index.html&#39;;
// 百度首页的html代码
Salin selepas log masuk

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(&#39;includeandrequire/*&#39;);
Salin selepas log masuk
测试代码: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
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

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

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

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

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

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

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

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

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

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,

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

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

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

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 Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

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.

See all articles