Mailinglisten-Archive |
Hallo Lars, Du schriebst am Dienstag, 20. November 2001, 20:38 > und habe keine Fehlermeldung erhalten. Auch habe ich das mit if > Klauseln ausprobiert, die wahr werden und mit exist. Dateien. Und > siehe da: require() verhält sich genauso wie include(), wenn man es > bei if-Statements einsetzt. Falsch, das stimmt nicht ganz. Require bindet den Quellcode der zu integrierenden Datei immer ein, auch wenn eine If-Bedingung false ist, nur wird der eingebundene Code halt nicht ausgeführt. Beispiel: Datei "include-file.inc": <? echo "Blabla1"; echo "Blabla2"; ?> Datei "test.php": <? if (false) { require ("include-file.inc"); } ?> wird dann beim Ausführen vom Parser umgewandelt in: if (false) { echo "Blabla1"; echo "Blabla2"; } Natürlich wird der Code trotzdem nicht ausgeführt, da die Bedingung ja nicht zutrifft, aber der Code "require (....)" wird umgewandelt. Bei einem include("include-file.inc"); und einer false-Bedingung würde das include () garnicht erst ersetzt. Wichtig wird das nur, wenn man sehr viele Dateien integriert, geschachtelt in if-Blöcke oder gar switch-Blöcke. Dann kann es passieren, daß das endgültig erzeugte Script bei require() zu groß wird, so daß der Parser durcheinander kommt, und das Ausführen mitten im Script unterbricht. Tschüß, Lars
php::bar PHP Wiki - Listenarchive