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