Hallo Tom,
$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.
Include macht zwei Sachen:
1\. file\_get\_contents(); es liest die komplette Datei als String ein
2\. eval();
Was du oben beschreibst, trifft auf eval() zu, und deshalb auch auf include();, weil eval() ein Teil davon ist.
Gruß
jobo