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