Autor | Zpráva | ||
---|---|---|---|
finchCZ Profil |
#1 · Zasláno: 21. 2. 2012, 19:57:45
Zdravím,
chtěl bych se zeptat, jestli je require_once na použití lepší než include_once a proč? Případně jaký je v nich rozdíl, z manuálu jsem pochopil, že require_once vloží soubor, jen pokud nebyl už vložen, ale include_once jej tam vloží, tak jako tak. Někde jsem o tom četl, ale totálně nechápu proč. Require_once je bezpečnější? Může mi prosím někdo dát nějaký příklad? |
||
Tori Profil |
#2 · Zasláno: 21. 2. 2012, 20:04:12
finchCZ:
„require_once vloží soubor, jen pokud nebyl už vložen, ale include_once jej tam vloží, tak jako tak“ Ne, include_once také vkládá soubor jen pokud už nebyl vložen. Tytéž příkazy bez _once mohou vložit soubor opakovaně. Zásadní rozdíl mezi require a include je v reakci na vložení neexistujícího souboru: include vygeneruje varování, ale skript pokračuje dál, kdežto require vyvolá fatální chybu a ukončí skript. Pročtěte si ten manuál ještě jednou, píše se to tam. |
||
Nox Profil |
#3 · Zasláno: 21. 2. 2012, 20:06:32
Zapomněl jsi se ještě kouknout do require, tam to je:
"require() is identical to include() except upon failure it will also produce a fatal E_COMPILE_ERROR level error. In other words, it will halt the script whereas include() only emits a warning (E_WARNING) which allows the script to continue." Tzn. require require hodí fatal error pokud soubor neexistuje, include jen warning. V praxi ale kvůli tomu že chyby jsou v PHP řešeny nekonzistentně a navíc mít tam jakékoli chyby je problém, se to řeší - a frameworky to tak řeší - že se i při notice vyhodí velká obrazovka s chybou...a v tom případě je to celkem jedno |
||
finchCZ Profil |
#4 · Zasláno: 21. 2. 2012, 20:24:27
Aha, děkuji, já vůl jsem si četl jen manuál k _once funkcím a o rozdílu v chybách jsem tudíž nevěděl. Tak mě napadá, že require(_once) je v jistém smyslu i bezpečnější, než include. Právě kvůli toho odstavení skriptu.
Děkuji a omlouvám se za stupidní dotaz |
||
Časová prodleva: 12 let
|
0