phpbar.de logo

Mailinglisten-Archive

AW: [php] Require/Include

AW: [php] Require/Include

Wolfgang Hauck php_(at)_phpcenter.de
Wed, 19 Jun 2002 14:43:55 +0200


>Hallo Liste,
>gibt es zwischen Include und Require auch einen
Geschwindigkeitsunterschied?
>Und falls ja, welche der beiden M�glichkeiten ist dann schneller?
>MfG
>Uli
Hi Uli,

Der require()-Befehl setzt an seine Stelle den Inhalt der angegebenen Datei
(�hnlich dem #include von C).
Wichtig: PHP kehrt zu Beginn der per include() oder require() eingebundenen
Dateien vom PHP- in den HTML-Modus und am Schlu� der Datei wieder vom HTML-
in den PHP-Modus zur�ck. Falls innerhalb dieser Dateien also PHP-Code
ausgef�hrt werden soll, muss dieser eingeschlossen werden von g�ltigen
PHP-Start- und PHP-Ende-Marken .
Require() ist keine PHP-Anweisung, sondern eine spezielle Sprachanweisung.
Sie ist anderen Regeln unterworfen als Funktionen. Einerseits unterliegt
sie keinen Kontroll-Srukturen, andererseits gibt sie keinen Wert zur�ck.
Der Versuch, von einem require()-Aufruf einen R�ckgabewert zu erhalten,
f�hrt zu einem Parse-Fehler.
Anders als include() wird require() immer die angegebene Datei einlesen,
auch dann, wenn die Programmzeile, in der sie steht, nicht ausgef�hrt wird.
Wenn sie eine Datei nur bedingt einlesen wollen, benutzen sie include().
Die bedingte Anweisung w�rde require() nicht davon abhalten, die Datei zu
laden.
Innerhalb von Schleifen tritt der Effekt auf, dass, obwohl die den
require()-Befehl enthaltende Zeile mehrfach angesprungen wird, die
entsprechende Datei trotzdem nur genau einmal eingelesen (ausgef�hrt) wird.
Sie k�nnen also require() nicht innerhalb von Programm-Schleifen einsetzen.
Deshalb, und wenn sie verschiedene Dateien einlesen wollen, m�ssen sie in
Schleifen den Befehl include() benutzen.

Vom Einlesen selber gibts keinen Unterschied.

Alles klar ?

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive