phpbar.de logo

Mailinglisten-Archive

[php] Frage zu require() und include()

[php] Frage zu require() und include()

Lars Volkhardt php_(at)_phpcenter.de
Thu, 22 Nov 2001 16:32:30 +0100


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