Hallo alle zusammen,
ich spiel mich grad bei PHP mit verschachtelten Funktionen herum, und bin auf eine, meines Erachtens nach, unlogische Eigenschaft gestoßen, und wollte fragen ob jemand von euch weiß wieso das so ist.
Und zwar habe ich folgenden Code
function baum($test){
function f1(){
return "f1 wurde aufgerufen";
}
function f2(){
return "testausgabe " . f1();
}
echo f2();
include "test.php";
}
baum("testtext");
Die Datei test.php sieht so aus:
<h1>Überschrift</h1>
<?php echo f1(); ?>
Die Ausgabe im Browser sieht folgendermaßen aus:
testausgabe f1 wurde aufgerufen
Überschrift
Fatal error: Call to undefined function f1 in ....
Und genau das verstehe ich nicht, wieso die Funktionen f1 und f2 von der inkludierten Datei nicht aufrufbar sind, Variablen jedoch schon. Also wenn ich die Funktionen f1 und f2 auf die Art
deklariere, und ich dann $f1() schreibe, funktioniert es so wie gewünscht.
Kann mir jemand erklären wieso es so funktioniert?
LG, David S.