Rozdiel medzi require, include, require_once a include_once? Konštrukcie riadenia PHP vyžadujú príkazovú reakciu na výskyt chyby.

Jednou z najzábavnejších a najužitočnejších funkcií php je pripojenie iného súboru. Web napríklad obsahuje hornú ponuku, dolnú ponuku a medzi nimi aj obsah samotnej stránky. A napríklad 10 stránok webu používa spodnú ponuku. V určitom okamihu to bolo potrebné zmeniť. V html by ste manuálne vykonali zmeny v každom samostatnom súbore, ale php vám umožňuje výrazne zjednodušiť prácu s webom! Kód spodnej ponuky môže byť obsiahnutý v samostatnom súbore a na každú z 10 stránok ho môžete jednoducho zahrnúť samostatný súbor! To znamená, že všetky zmeny je teraz potrebné vykonať iba v súbore s ponukou a na 10 ďalších sa už budú zobrazovať so zmenami.

Význam pripojenia v PHP v jednoduchej ruštine:

1.php súbor
Horné menu

2.php súbor
Dolné menu

Súbor example.php
Pripojiť súbor 1.php
Obsah stránky
Pripojiť súbor 2.php

V dôsledku spracovania súboru example.php sa zobrazí nasledujúce
Horné menu
Obsah stránky
Dolné menu
Preto, aby ste v spodnej ponuke mohli čokoľvek zmeniť, stačí vykonať zmeny iba v súbore 2.php

Cesta k súboru

Súbor je pripojený podľa cesty zadanej k súboru. Existujú dve možnosti cesty: relatívna a absolútna. Relatívny je údaj o ceste k zahrnutému súboru vzhľadom na súbor s pokynom na pripojenie. Absolútne - zadanie úplnej cesty k zahrnutému súboru.

PHP kód

// príklad relatívnej cesty
zahrnúť „include / your_file.php“; // súbor je v priečinku include, ktorý sa nachádza v rovnakom adresári ako súbor s pripojením

// priklad absolutnej cesty
zahrnúť $ _SERVER ["DOCUMENT_ROOT"]. " / include / your_file.php"; // $ _SERVER ["DOCUMENT_ROOT"] - označuje koreňový adresár stránky

zahrnúť a zahrnúť_jeden

zahrnúť ()- konštrukcia navrhnutá tak, aby zahŕňala súbory v kóde skriptu PHP počas vykonávania skriptu PHP. Pri spracovaní kódu sa inštrukcia nahradí obsahom priloženého súboru. Odporúčam ihneď sa pozrieť na príklad.

Uvažujme ako príklad zahrnutie dvoch súborov: index.php a text.php... Pre jednoduchosť povedzme, že sú v rovnakom adresári.

PHP kód(súbor index.php)

Echo „Čistý text obsiahnutý v hlavnom súbore“;
zahrnúť „text.php“; // zahrnie obsah súboru text.php

?>
PHP kód(súbor text.php)

Echo „Text obsiahnutý v súbore zahrnutia“;

?>
V dôsledku práce súboru index.php sa zobrazí nasledujúce:

Čistý text obsiahnutý v hlavnom súbore
Text obsiahnutý v súbore zahrnutia
Nie je to pohodlné? Teraz, keď zmeníte obsah v súbore text.php, výsledok práce index.php bude úplne iný!

Teraz sa porozprávajme o inom dizajne - include_once... Funguje to úplne rovnako ako pri zahrnutí, iba to bolo vytvorené neskôr a pre prípady, keď súbor nemožno znova zahrnúť. Napríklad sa obávate, že v dôsledku chyby môžete súbor pripojiť 2 alebo viackrát, čo ovplyvní nesprávnu činnosť stránky a zobrazí zodpovedajúce chybové hlásenie.

PHP kód

Include_once "text.php"; // súbor text.php bude zahrnutý iba raz

// nižšie uvedené opätovné pripojenie sa nebude počítať a zobrazovať
// a kvôli tomu sa nezobrazí žiadne chybové hlásenie
include_once "text.php"; // nic sa nestane

vyžadovať a vyžadovať_jeden

Príkazy require a require_once fungujú rovnako pri zahrnutí a zahrnutí_jedného okrem jednej zvláštnosti - ak sa zahrnutý súbor nenájde, spustenie skriptu sa zastaví (skript sa už nebude čítať), zatiaľ čo príkaz include a include_once len zobrazí upozornenie a pokračujte v ďalšom spustení skriptu.

Ak zahrnutie alebo vyžadovanie nefunguje

Aby ste pochopili dôvody, prečo zahrnutie nefunguje, navrhujem skontrolovať všetko krok za krokom. Bez ohľadu na to, aké jasné a povrchné sú nižšie uvedené body, skontrolujte všetko od začiatku.

1. Skontrolujte, či váš server a php funguje, ak nejaké fungujú php kód na strane
2. Skontrolujte, či súbor na zahrnutie existuje
3. Skontrolujte, či je v súbore správne zadaný názov súboru a prípona
4. Uistite sa, že sa zahrnutý súbor php skutočne nachádza na adrese, na ktorej ste zadali
5. Skúste zadať nie relatívnu cestu, ale absolútnu cestu (úplnú cestu k súboru).

Príklad PHP kód

Zahrňte „http://www.example.com/include/your_file.php“;

// DOCUMENT_ROOT - označuje koreňový adresár zdroja
zahrnúť $ _SERVER ["DOCUMENT_ROOT"]. " / include / your_file.php";

6. Ak váš súbor nie je pripojený a nezobrazuje sa žiadna chyba, vytvorte v priečinku so súborom, ktorý sa pripájate, súbor .htaccess s nasledujúcim obsahom

Php_flag display_errors On
alebo v súbore php, pred pripojením vložte nasledujúci riadok

Chybové hlásenie (E_ALL);
Jedno aj druhé nastavenie bude nútené zobrazovať chyby

Pri vývoji akéhokoľvek webu a akejkoľvek zložitosti musíte predovšetkým preberať smer správnosti písania kódu. Ak napríklad vytvoríte celý kód s početnými súbormi na jednej stránke, povedie to k zmätku a veľkým nepríjemnostiam. A preto musíte súbory kategorizovať a potom ich zahrnúť do hlavného kódu na správnych miestach. Toto sa dá nazvať zahrnutím súborov. Toto je dosť jednoduché meno, ale pre človeka, ktorý sa s touto témou stretol prvýkrát, to môžete nazvať tak. A aby ste mohli zhromaždiť všetky zahrnuté súbory do jedného kódu, musíte použiť to, čo je napísané v predchádzajúcom článku, alebo použiť návod vyžadovať a vyžadovať_jeden ktorý je napísaný v tomto texte.

Praktické pokyny vyžadovať a vyžadovať_jeden vykonávať rovnakú funkciu ako pokyny zahrnúť a zahrnúť_jeden, až na niektoré body.

Syntax týchto pokynov je:

Require_once 'config.php'; - súbor nastavení
require_once ‘header.php’; - hlavička stránky
vyžadujú 'left.php'; - ľavý bočný panel
vyžadovať 'content.php'; - obsah stránok
vyžadujú 'footer.php'; - päta stránky

Rozdiel je nasledujúci. Pri spracovaní kódu PHP najskôr prevedie skript do svojej internej reprezentácie a potom začne spracovávať kód riadok po riadku. A ak PHP nájde v kóde súbor zahrnutý v inštrukcii zahrnúť, potom sa po načítaní súboru úplne prepne na jeho vykonanie, súbor skonvertuje na internú reprezentáciu a až potom ho spustí krok za krokom ...

A tu je návod vyžadovať funguje trochu inak. Súbor spojený s jeho pomocou je preložený pred spustením skriptu, inými slovami, v čase spracovania celého kódu bol tento súbor už preložený !!! A preto záver - súbory prepojené inštrukciou vyžadovať- bude fungovať rýchlejšie. A pre mňa je napríklad táto inštrukcia výhodnejšia. Ale samozrejme je tu aj jedno ALE! Keď prehliadač načíta stránku, môže dôjsť k zlyhaniu internetu a používateľovi sa zobrazí iba časť stránky, ktorú sa podarilo načítať. Alebo ak dôjde k nejakému zlyhaniu spracovania, spracovanie nepôjde ďalej ako uviaznutý súbor. Na webových stránkach sa to však stáva málokedy, preto sú tieto pokyny stále vhodnejšie.

Takmer som zabudol. Inštrukcie require_once- plní aj úlohu zahrnutia súboru do zdieľaného kódu iba raz, aby nedochádzalo k opakovaniu.

To je takmer všetko, čo potrebujete najskôr vedieť o tom, ako prepojiť súbory so všeobecným tokom písania kódu. Hlbšie znalosti zvyčajne prichádzajú v procese učenia sa a v závislosti od potrieb, ktoré prirodzene nemôžem predvídať. Ďakujem za pozornosť a ospravedlňujem sa za autorovu prezentáciu týchto tém.

Júl 2019
Po W Streda NS Pia So slnko
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

REKLAMA

    Príkaz PHP include, príkaz php include_once, zahrnutie súborov. Pri vývoji jednoduchého dynamického webu alebo pokročilejších programov je to nemožné

    Štruktúra mechanizmu stránok, ktorý pozostáva z modulu webu, ovládacieho panela webu, modulu šablón. V predchádzajúcom článku to bolo popísané

    Čo je motor pre webovú stránku, ako vytvoriť nástroj pre webové stránky, systém pre správu obsahu v php. Aby sme pochopili, čo je

Požadovaná konštrukcia

Dizajn vyžadovať umožňuje zahrnúť súbory do skriptu PHP Spustenie skriptu PHP. Všeobecná syntax vyžadovať taký:

vyžadovať názov súboru;

Pri štarte (presne pri štarte, nie pri spustení!) Tlmočník v programe jednoducho nahradí inštrukciu obsahom názvu súboru (tento súbor môže tiež obsahovať skript PHP, ako obvykle, orámovaný tagmi a ?> ). Navyše to urobí bezprostredne pred spustením programu (na rozdiel od zahrnúť, ktorý je popísaný nižšie). To môže byť celkom vhodné na zahrnutie rôznych stránok šablón do kódu HTML do výstupu skriptu. Uveďme príklad:

Súbor Header.html:

Je to titul

Súbor Footer.html:
Domáca spoločnosť, 2005.

Súbor Script.php
vyžadujú "header.htm";
// Skript vydá telo dokumentu
vyžadujú "footer.htm";
?>

Teda konštrukcia vyžadovať umožňuje zostavovať skripty PHP z niekoľkých samostatných súborov, ktoré môžu byť podobné html-stránky a php-skripty.

Dizajn vyžadovať podporuje inklúzie zmazané súbory(od PHP 4.3.0). Napríklad:

// Nasledujúci príklad nefunguje, pretože sa pokúša zahrnúť lokálny súbor
vyžadujú "file.php? foo = 1 & bar = 2";
// Nasledujúci príklad funguje
požadovať;
?>

! Dizajn vyžadovať umožňuje zahrnúť vzdialené súbory, ak sú povolené, v konfiguračnom súbore PHP.

Obsahuje vzdialené súbory

PHP vám umožňuje pracovať s objektmi URL, ako sú bežné súbory. Predvolené balíky sa používajú na prácu so vzdialenými súbormi pomocou protokolu ftp alebo http.

Ak sú v PHP zahrnuté „obaly na otváranie adries URL“ (ako v predvolenej konfigurácii), môžete zadať súbor, ktorý sa má zahrnúť, pomocou adresy URL (cez HTTP) namiesto lokálnej cesty. Ak cieľový server interpretuje cieľový súbor ako kód PHP, premenné je možné odoslať do súboru na zahrnutie pomocou reťazca dotazu adresy URL, ako v prípade HTTP GET. Presne povedané, nie je to to isté, ako zahrnúť súbor a dediť variabilný rozsah nadradeného súboru; pretože skript beží na vzdialenom serveri a výsledok je potom prepojený s miestnym skriptom.

Aby bolo diaľkové zahrnutie súborov k dispozícii, musíte ho nastaviť v konfiguračnom súbore (php.ini) allow_url_fopen = 1.

Poznámka: Verzie PHP pre systém Windows staršie ako PHP 4.3.0 nepodporujú možnosť používať vzdialené súbory s touto funkciou, aj keď je povolená možnosť allow_url_fopen.


/ * To predpokladá, že www.example.com je nakonfigurovaný na parse.php
* súbory, nie súbory .txt. Tiež „funguje“ tu znamená, že premenné
* $ foo a $ bar sú k dispozícii v priloženom súbore. * /

// Nebude to fungovať, pretože súbor www.example.com nespracováva súbor.txt ako PHP
vyžadovať „http://www.example.com/file.txt?foo=1&bar=2“;

// Nebude to fungovať, pretože hľadá súbor "file.php? Foo = 1 & bar = 2" v lokálnom
// systém súborov.
vyžadujú "file.php? foo = 1 & bar = 2";

// Nasledujúci príklad funguje:
vyžadovať „http://www.example.com/file.php?foo=1&bar=2“;

$ foo = 1;
$ bar = 2;
vyžadujú "file.txt"; // Tvorba
vyžadujú "file.php"; // Tvorba

?>

Príkazy PHP: require (), require_once (), include_once ()

Dátum: 15. 10. 2012

Funkcie PHP: require (), require_once (), include (), include_once ()

V poslednej lekcii sme prácu podrobne preskúmali. Pripomínam, že operátor zahrnúť () v PHP nahrádza obsah jednej webovej stránky za inú webovú stránku. Existujú však aj ďalšie funkcie v PHP, ktoré vám umožňujú vykonať podobnú úlohu. Ide najmä o tieto funkcie:

include_once ()
vyžadovať ()
require_once ()

Na vloženie obsahu určitej webovej stránky stačí ako argument zadať cestu k týmto funkciám (v zátvorkách) požadovaný súbor... Napríklad takto:

zahrnúť ("file.php") alebo vyžadovať ("file.php")

Úloha pre všetky tieto funkcie je rovnaká: vložte požadovaný kód alebo text z jedného súboru do iného súboru. Tieto funkcie sa však navzájom líšia. Poďme zistiť, čo.

Prípona " _jeden"umožňuje pripojiť kód súboru na nahradenie do iného súboru iba raz, bez ohľadu na to, koľko hovorov sa robí. Pre prehľadnosť sa pozrime na jednoduchý príklad. V minulej lekcii sme prišli na to, že pomocou operátora zahrnúť (), môžete hlavičku stránky presunúť do samostatného súboru header.php, kvôli jednoduchosti budeme predpokladať, že do tohto súboru vkladáme grafické logo webu. Na správne miesto webovej stránky (v tomto prípade v mieste hlavičky stránky) napíšte kód Výpis 1.

Výpis 1.

Potom sa podľa toho dvakrát zobrazí aj logo stránky, približne takto:

Súhlasíte, nevyzerá to veľmi pekne, však? Ukazuje sa, že operátor zahrnúť () dvakrát vytiahne z priečinka bloky súbor header.php a je nahradený dvakrát namiesto hlavičky stránky.

Priložený súbor môže vo všeobecnosti obsahovať funkcie, ktoré po pridaní do zdrojového súboru môžu generovať chyby a vaša webová stránka sa nemusí vôbec načítať.

Na veľkých weboch je veľmi ľahké zamieňať sa s tým, kde a ktorý súbor ste zaradili a či ho môžete znova zahrnúť, čo môže viesť k chybe. Preto prišli s predponou „ _jeden"na funkcie zahrnúť a vyžadovať, ktorý obsahuje obsah súboru na inej webovej stránke iba raz.

Ako sa include () líši od require ()

Teraz hovorme ako o funkcii zahrnúť () odlišný od funkcie vyžadovať ()... V samotnej práci nemajú žiadne rozdiely. Obe funkcie obsahujú obsah jedného súboru v inom. Majú však rozdiel a spočíva v spôsobe reakcie na situáciu, keď súbor, ktorý spájame, nie je na svojom mieste.

Vráťme sa k predchádzajúcemu príkladu kódu Výpis 1... Máme nasledujúci kód:

Include ("blocks / header.php");

Skúsme súbor odstrániť header.php, ktorý vlastne spájame, napríklad súbor je poškodený alebo bol omylom vymazaný zo severu.

Aktualizujeme testovací súbor a zobrazí sa nasledujúca chyba:

Ako vidíte, objavila sa správa, že v adresári (priečinku) bloky súbor nenájdený header.php, ale program aj tak pokračuje a zvyšok webovej stránky sa zobrazuje normálne.

A ak napíšeme kód ( Výpis 3) pomocou funkcie vyžadovať ():

Výpis 3.

Vyžadovať ("blocks / header.php");

Potom máme zobrazí sa iba jedno chybové hlásenie, a program sa už nebude vykonávať, a uvidíte iba túto správu.

29 odpovedí

Existujú aj require a include_once.

Vaša otázka by teda mala byť ...

  1. Kedy mám použiť požiadavku a zahrnúť?
  2. Kedy by som mal použiť require_once versus require

Funkcia require () je rovnaká ako funkcia include (), okrem toho, že spracováva chyby odlišne. Ak sa vyskytne chyba, funkcia include () vygeneruje varovanie, ale skript pokračuje v spustení. Require () vygeneruje závažnú chybu a skript sa zastaví.

Príkaz require_once () je identický s príkazom require (), okrem toho, že PHP skontroluje, či súbor už bol zahrnutý, a ak áno, nebude ho zahŕňať (vyžadovať) znova.

Moje odporúčanie je použiť 99,9% času iba require_once.

Použitie príkazu require or include namiesto toho znamená, že váš kód nemožno znova použiť inde, tj. Skripty, ktoré skutočne píšete popraviť, namiesto poskytnutia triedy alebo niektorých knižníc funkcií,

Ak požadujete / vrátane kódu, ktorý je spustený na mieste, jedná sa o procedurálny kód a potrebujete naučiť sa novú paradigmu... Podobne ako objektovo orientované programovanie, funkčné programovanie alebo funkčné programovanie.

Ak už robíte OO alebo funkčné programovanie, použitie include_once väčšinou oddiali, keď nájdete chyby / chyby v zásobníku. Chcete vedieť, že funkcia do_cool_stuff () nie je k dispozícii, keď ju zavoláte neskôr, alebo v okamihu, keď očakávate, že bude k dispozícii potrebujete knižnicu? Spravidla je najlepšie vedieť, či niečo, čo potrebujete a čo môžete očakávať, nie je k dispozícii, preto použite príkaz require_once.

Alternatívne, v modernom OOP, automaticky načítajte svoje triedy pri použití.

Rozdiel medzi funkciami _once a _once: bez kódu bude funkcia _once opäť povolená, zatiaľ čo s funkciami _once bude PHP sledovať zahrnuté súbory a povolí ich iba raz.

Rozdiel medzi požiadavkou a zaradením: Ak sa požadovaný súbor nenájde, PHP vygeneruje závažnú chybu, pričom pri zahrnutí sa zobrazí iba varovanie.

include () vydá varovanie, ak nemôže obsahovať súbor, ale zvyšok skriptu sa spustí.

require () vyhodí E_COMPILE_ERROR a zastaví skript, ak nemôže obsahovať súbor.

Funkcie include_once () a require_once () nebudú zahŕňať súbor druhýkrát, ak už bol zahrnutý.

Pozrite sa na nasledujúce stránky dokumentácie:

Kedykoľvek použijete require_once (), môžete do súboru použiť ďalší súbor, ak potrebujete súbor, ktorý ste práve zadali v aktuálnom súbore. Tu v príklade mám test1.php.

a v inom súbore, ktorý som pomenoval test2.php

keď sa pozriete na m, vyžaduje to dvakrát súbor test1, ale súbor bude raz obsahovať test1 a druhýkrát bude pre hovor ignorovaný. A bez zastavenia sa výstup zobrazí raz.

Kedykoľvek použijete „include_once ()“, môže byť použitý v súbore na zahrnutie iného súboru, ak potrebujete, aby bol súbor v aktuálnom súbore nazývaný viac ako raz. V tomto prípade mám súbor s názvom test3.php.

A v inom súbore, ktorý som pomenoval test4.php

pretože sa pozeráte na m vrátane test3, súbor bude raz zahrnutý, ale zastavte ďalšie spustenie.

Rozdiel je v chybe, ktorú generujú príkazy. V prípade požadavku skutočne potrebujete súbor, ktorý chcete použiť, a preto vygeneruje E_ERROR, ak sa nenájde.

require () je totožný s parametrom include (), okrem odmietnutia bude mať za následok aj smrteľnú chybu E_ERROR.

zahrnúť generuje chybu E_WARNING, ak zlyhá, čo je viac -menej tiché.

Použite ho teda vtedy, ak je súbor potrebný na to, aby zostávajúci kód fungoval a chcete, aby skript zlyhal, súbor nie je k dispozícii.

Výnimočne ():

include_once () môže byť použitý v prípadoch, keď môže byť ten istý súbor zahrnutý a vyhodnotený viac ako raz počas konkrétneho spustenia skriptu, takže v tomto prípade to môže pomôcť vyhnúť sa problémom, ako sú prepísanie funkcií, prepísanie variabilné hodnoty, atď.

To isté platí samozrejme pre require_once ().

Táto otázka bola položená pred siedmimi rokmi a žiadna z odpovedí v tejto otázke neposkytuje praktickú pomoc. V modernom programovaní PHP v zásade použijete required_once iba raz na to, aby ste povolili svoj autoloader (často autoloader skladateľa) a načíta všetky vaše triedy a funkcie (súbory funkcií musia byť explicitne pridané do súboru composer.json, aby boli dostupné vo všetkých ostatné súbory). Ak z nejakého dôvodu nie je vaša trieda načítaná z automatického načítača, na načítanie ju použijete require_once.

V dnešnej dobe potrebujete iba rozdeliť veľkú časť súboru PHP. Toto je v zásade definícia veľkého poľa. V takýchto prípadoch použijete iba require require_once.

"y"];

Ak súbor, ktorý chcete použiť, obsahuje niečo spustiteľné alebo deklaruje niektoré premenné, ktoré musíte použiť, vyžadujú takmer vždy, pretože ak použijete require_once inde, váš kód sa nespustí a / alebo sa vaše premenné ticho nespustia, čo spôsobí chyby, ktoré sú úplne ťažko rozpoznateľné.

Prax include a include_once sa prakticky nepoužíva.

Do súborov musíte uložiť definície tried a funkcií.

Na načítanie použite require_once () závislosti

Na načítanie použite require () súbory podobné vzorom.

Na načítanie použite include_once () voliteľné závislosti(triedy, funkcie, konštanty).

Na načítanie použite include () voliteľné súbory podobné šablóne.

požadovaný bude mať za následok závažnú chybu (E_COMPILE_ERROR) a zastaví skript.

zapnúť vydá varovanie (E_WARNING) a skript bude pokračovať.

Operátor require_once je možné použiť na zahrnutie súboru PHP do iného súboru, keď budete možno potrebovať zahrnúť volaný súbor viackrát.

Ak je a.php skript PHP, ktorý volá b.php, ktorý vyžaduje

zahrnúť ()

Obsahuje zadaný súbor. Ak súbor nemôže nájsť a spustiť ostatné skripty, vydá varovanie.

požadovaný ()

Obsahuje zadaný súbor. Ak súbor nemôže nájsť a prestane sa vykonávať, bude to mať za následok závažnú chybu

Obsahuje zadaný súbor. súbor je už zahrnutý, už nebude zahrnutý. Ak nemôže nájsť súbor a spustiť ostatné skripty, vydá varovanie.

Obsahuje zadaný súbor. súbor je už zahrnutý, už nebude zahrnutý. Ak súbor nemôže nájsť a prestane sa vykonávať, bude to mať za následok závažnú chybu.

je totožné s zahrnutím / vyžadovaním, okrem toho, že PHP kontroluje, či súbor už bol zahrnutý, a ak áno, nezaraďte ho (povinné) znova.

V ére automatických nakladačov PSR-0 / PSR-4 môže byť úplne zbytočné používať akékoľvek operátory, ak všetko, čo potrebujete, je sprístupniť svojmu kódu niektoré funkcie / triedy (samozrejme, stále musíte vo svojom súbore použiť require_once bootstrap a zahrňte šablóny, ak ako šablónovací nástroj stále používate PHP).

require () je totožný s parametrom include (), okrem odmietnutia bude mať za následok aj závažnú chybu E_COMPILE_ERROR. Inými slovami, zastaví skript, zatiaľ čo include () iba vyvolá varovanie (E_WARNING), ktoré umožní skriptu pokračovať.

To isté platí pre možnosti _once ().

Použil som funkciu uvedenú nižšie:

Funkcia doSomething () (require_once (xyz.php); ....)

Konštantné hodnoty boli opravené v xyz.php.

Túto funkciu doSomething () musím nazvať z iného súboru skriptu PHP.

Ale pozoroval som správanie pri volaní tejto funkcie v slučke, pre prvú iteráciu doSomething () dostával konštantné hodnoty do xyz.php, ale neskôr každá iterácia doSomething () nemohla získať konštantné hodnoty deklarované v xyz. php.

Problém som vyriešil prechodom z require_once () na include (), aktualizovaný kód doSomething () vyzerá takto:

Funkcia doSomething () (include (xyz.php); ....)

Teraz každé iteračné volanie doSomething () dostane konštanty definované v xyz.php.

Kedy by ste mali použiť požiadavku alebo zaradenie?

Funkcie require a include vykonávajú rovnakú úlohu, to znamená, že zahŕňajú a vyhodnocujú špecifikovaný súbor, ale rozdiel, ktorý vyžadujú, bude mať za následok závažnú chybu, ak je zadané umiestnenie súboru neplatné alebo dôjde k akejkoľvek chybe, zatiaľ čo zahrnutie vygeneruje varovanie a pokračujte vo vykonávaní kódu.

Týmto spôsobom môžete použiť funkciu require v prípade, že súbor, ktorý sa pokúšate zahrnúť, je srdce systému a môže mať obrovský vplyv na zvyšok kódu a funkciu zahrnutia môžete použiť vtedy, keď sa pokúšate zahrnúť súbor, ktorý je jednoduchým súborom obsahujúcim menej dôležitý kód.

A moje osobné odporúčanie (pre menej dôležitý kód) je použiť funkciu require kdekoľvek vo vašom kóde, kým je vo vývoji, aby ste mohli kód odladiť a potom nahradiť všetky požadované funkcie zahrnutím pred presunutím do výroby, takže ak vám nejaký chýba chyby, nebude to mať vplyv na koncového používateľa a zvyšok kódu sa spustí správne ...

Kedy by ste mali použiť require_once alebo require?

Hlavný rozdiel medzi požiadavkou a požiadavkou_jednotky je .

Takže v prípadoch, keď chcete znova a znova pridať kúsok kódu, použite funkciu require, zatiaľ čo ak chcete do kódu zahrnúť nejaký kód iba raz, použite require_once.

Toto sú všetky spôsoby zahrnutia súborov.

Žiadať znamená, že je to nevyhnutné. Require_once znamená, že to bude povinné, ale vyžaduje sa to iba raz. Zahrnúť znamená, že bude zahŕňať súbor, ale nie je potrebné pokračovať.

Vyžadovať "názov súboru" Vyžadovať_jedinečný "názov súboru" Zahrnúť "názov súboru"

K dispozícii je tiež funkcia include_once, ktorá obsahuje súbor raz.

Include_once "názov súboru"

Pri písaní z telefónu nepoužívajte veľké písmená.

V zásade, ak chcete nesprávnu cestu, PHP vyvolá závažnú chybu a zavolá sa funkcia vypnutia, ale keď zadáte nesprávnu cestu, PHP bude pokračovať vo vykonávaní, ale zobrazí iba varovanie, že súbor neexistuje.

Z požadovaného anglického slova PHP hovorí, že spustenie stránky alebo súboru závisí od požadovaného súboru.

Podľa mojich skúseností je to norma a vyžaduje dôležité súbory, ako sú konfiguračné súbory, databázové triedy a ďalšie nevyhnutné nástroje.