Hello,
Include & Co. verhält sich nur was die Rückgabe eines Ergebnisses betrifft ähnlich einer Funktion.
Das liegt aber am eval(); Und da ist es schon nicht mehr so erwartungswiedrig:
$testStr = "Hallo";
$codeStr = 'echo $testStr;';
eval($codeStr); // Hallo
Um das eval() ging es bei der vorstehenden Betrachtung gar nicht. Es ging nur um den Unterschied von include und function, die beide einen Rückgabewert liefern. Include kann aber zusätzlich alle Variablen des Gültigkeitsbereiches verändern, in dem es aufgerufen wurde und welche hinzufügen. Eine Funktion tut das nur, wenn man dies mit GLOBAL ausdrücklich veranlasst.
Außerdem wird eine eingebundene Funktion nicht automatisch ausgeführt, der mit include direkt eingebundene Code aber schon, wenn das include erreicht (gelesen) wird. Im include enthaltene Funktionen werden selbstverstänflich erst aktiv, wenn das include gelesen wurde UND die Funktion aufgerufen wurde.
Ich hoffe, dass der Unterschied nun klar ist.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>