I PHP:
require
vs. include
?require_once
vs. include_once
?Der findes også require
og include_once
.
Så dit spørgsmål burde være...
require
vs. include
?require_once
vs. require
?Svaret på 1 er beskrevet [her] (http://www.w3schools.com/php/php_includes.asp).
Funktionen require() er identisk med funktionen include(), bortset fra at den håndterer fejl anderledes. Hvis der opstår en fejl, genererer funktionen include() en advarsel, men scriptet fortsætter udførelsen. require() genererer en fatal fejl, og scriptet stopper.
Svaret på 2 kan findes her.
Angivelsen require_once() er identisk med require(), bortset fra at PHP kontrollerer, om filen allerede er blevet inkluderet, og i så fald ikke inkluderer (kræver) den igen.
Forskellen mellem _once-funktioner og uden _once-funktioner: uden _once-funktioner: uden _once-funktioner vil koden blive inkluderet igen, mens PHP med _once-funktioner holder styr på de inkluderede filer og inkluderer dem kun én gang.
Forskellen mellem require og include: Hvis en krævet fil ikke findes, vil PHP udsende en fatal fejl, mens der for include kun udsendes en advarsel.
Forskellen ligger i den fejl, som kommandoerne genererer. Med require
er den fil, du vil bruge, virkelig påkrævet og genererer derfor en E_ERROR
, hvis den ikke kan findes.
require()
er identisk medinclude()
, bortset fra at den ved fejl også vil producere en fejl påE_ERROR
-niveau.
include
genererer kun en E_WARNING
-fejl, hvis den fejler, hvilket er mere eller mindre lydløst.
Så brug det, hvis filen er nødvendig for at få den resterende kode til at fungere, og du ønsker at scriptet fejler, hvis filen ikke er tilgængelig.
For *_once()
:
include_once()
kan bruges i tilfælde, hvor den samme fil kan blive inkluderet og evalueret mere end én gang i løbet af en bestemt udførelse af et script, så i dette tilfælde kan det hjælpe med at undgå problemer som f.eks. redefinitioner af funktioner, omfordeling af variabelværdier osv.
Det samme gælder naturligvis for require_once()
.
Henvisning: require()
, include_once()