Nutzung von Variablen

MC-René

Erfahrenes Mitglied
Hallo!

Folgender Code:

PHP:
$name="Rudi"
include="suchen.php"

Kann ich in der Datei "suchen.php" die variable "$name" nutzen.
Wenn ja wie!? (einfach mit $name, oder mit $GLOBALS['name'])

Danke!


P.S.: (Register Globals=off)
 
Tja das dachte ich eigentlich auch!

Nur Sämtliche Variablen werden in der Includierten PHP nicht "erkannt".

Wer weiss rat...!?
 
Der Geltungsbereich von Variablen ist meines Wissens nicht von "include" oder "require" abhängig, sondern hat nur mit Funktionen und Klassen zu tun. Der Code der inkludierten Datei wird einfach an der Stelle, an der das "include" steht eingesetzt...

Das heißt demnach auch, dass wenn "include" innerhalb einer Funktion steht, dann sind dem inkludierten Code auch nur die Variablen aus der Funktion bekannt, nicht diejenigen außerhalb der Funktion.

Beispiel suchen.php (Include-Datei):
PHP:
echo $name;
Beispiel Aufrufender Code:
PHP:
$name = "Rudi";
function inkludieren() {
  include("./suchen.php");
}
Wenn der Parser das zusammenbaut, dann muss man sich das so vorstellen:
PHP:
$name = "Rudi";
function inkludieren() {
  echo $name;
}
So ist die Variable $name in der Include-Datei nicht bekannt, denn sie gilt nur innerhalb der Funktion inkludieren().

Ich bin jedenfalls in meiner Anfängerphase mal ganz böse über diesen Sachverhalt gestolpert (dachte ich würde mir eine Funktion schreiben, die alle benötigten Dateien inkludiert). Vielleicht ist das bei Dir auch der Fehler...

Grüße,
Martin
 
Wie kann ich dann die variable in der includierten datei nutzen.

Mit
PHP:
$GLOBALS[$var]
?

Und umgekehrt, kennt die haupt php die var, aus der inkludierten!?

Das könnte die Lösung sein... ;)

Bitte noch n paar Tipps!

Daaanke!
 
Wie gesagt: So lange der include-Befehl selbst nicht innerhalb einer Funktion steht, sind dem inkludierten Code alle vor dem Include verwendeten Variablen bekannt und können ohne GLOBALS[] einfach so verwendet werden.
Genauso können alle Variablen, die in der Include-Datei verwendet werden in dem auf den Include-Befehl folgenden Code in der "Haupt-PHP" ohne GLOBALS[] verwendet werden - solange die Variablen im inkludierten Code nicht selbst in Funktionen verwendet werden.

Man muss sich einfach bildlich vorstellen, dass der gesamte Code aus der Include-Datei genau an der Stelle in den Haupt-Code eingesetzt wird, wo der Include-Befehl steht.

Datei "test1.inc":
PHP:
echo $name;
$name = " Rentier";
Hauptcode:
PHP:
$name = "Rudi";
include("test1.inc");
echo $name;
Ausgabe:
Code:
Rudi Rentier
 
Alles schön und gut! Hab ich verstanden! :)

Nur bei meinen Scripten geht das nicht!

Alle Var. sind leer!

Wenn ich z.B. eine var. definiere:

PHP:
$name="PAUL";
include ("suchen.php");

jetzt die suchen.php:

PHP:
echo $name

kommt nix!
auch im umgekehrten fall!?

Gibt es da ne Einstellung in der PHP.INI ?
 
Anfängerfehler? :rolleyes:

Hallo!

Glaub ich habs schon selbst rausgefunden:

Kann es sein dass der Pfad der icludierten Datei zum PHP-Pfad und nicht zum HTTP-Pfad zeigen muss!

Also
PHP:
include ("/home/strato/www/bl/www.blabla.de/htdocs/php/suchen.php");

anstelle von

PHP:
include ("http://www.blabla.de/php/suchen.php");


Für Anmerkungen/Erklärungen bin ich sehr dankbar...

:-)
 
es muss der absolute pfad sein, also ./ordner/datei.php, über http geht es nicht

und die variable kannst du auch einfach in der suchen.php benutzen..
 
Es kann auch der relative pfad sein,
wenn er bspw. die zu inkudierende Datei im gleich Ordner hat, wie sein php-file, dann braucht er nur:
include("zu_inkludierende_datei.php");
 
Zurück