Xava: several PHP include() ' s

Beitrag lesen

Hallo shevegen!

Datei A.php inkludiert Datei B.php.
Datei B.php soll wiederum eine weitere Datei C.php inkludieren, wobei dieses include
über eine Funktion aufgerufen wird. Diese Funktion wird ziemlich gleich zu Beginn in
Datei A mit einem Parameter aufgerufen.

Datei C.php enthält nun einige Variablen, die ich in Datei A.php
mittels echo $foo ausgeben möchte. Allerdings scheint Datei A.php diese Variablen gar
nicht zu kennen, [...]

Ich bin mir nicht sicher, ob ich dich richtig verstanden habe.

Aber anscheinend stehen in der Datei "C.php" die benötigten Variablen, wie z. B. die Variable "$foo". Diese  Datei "C.php" wird durch eine Funktion in der Datei "B.php" inkludiert. Die Datei "B.php" wird von der Datei "A.php" inkludiert.

Nun scheint ein auslesen in der Datei "A.php" der Variablen "$foo", welche in der Datei "C.php" deklariert wurde, nicht möglich.

Auf die Variable "$foo" kann natürlich erst in der Datei "A.php" zugriffen werden, wenn _zuvor_ die Inklude-Anweisungen ausgeführt wurden.

Ausserdem ist zu beachten, dass in Funktionen ein eigener Namensraum besteht. Zunächst kann aus einer Funktion nicht auf Variablen, die ausserhalb der Funktion deklariert wurden zugegriffen werden und umgekehrt. Abhilfe schafft hier der Befehl "global", der die übergebenen globale Variablen in den Namensraum der Funktion importiert.
Um Variablen/Werte innerhalb einer Funktion auch ausserhalb zur Verfügung zu stellen, kann man sie am Ausführungsende der jeweiligen Funktion mittels dem Befehl "return" zurückgeben. Oder man schreibt die Werte in einer zuvor mit dem Befehl "global" in den Namensraum der Funktion importierten globalen Variablen.

Siehe hierzu:
 - PHP-Handbuch: include():
   http://de.php.net/manual/de/function.include.php
 - dclp-FAQ: 6.1. Welche Variablenarten gibt es in PHP und wie greife ich auf sie zu?
   http://www.dclp-faq.de/q/q-php-variablen.html
 - PHP-Handbuch: Geltungsbereich von Variablen (global):
   http://de.php.net/language.variables.scope
 - PHP-Handbuch: return:
   http://de3.php.net/return