Sessions unter function
rene
- php
Hallo!
Kleine Verständnisfrage: Wenn ich z.B. am Anfang eines Scripts session_register("versuch"); sage, kann ich dann auch auf $versuch zugreifen, wenn diese innerhalb eines function-Bereiches benötigt wird, der mit dem include-Befehl eingegliedert wird?
Vielleicht eine doofe Frage, aber bei mir sieht es im Moment so aus, dass ich innerhalb eines Scripts auf z.B. $versuch zugreifen kann. Binde ich jetzt ein anderes Script ein, kann ich immer noch auf $versuch zugreifen. Komme ich aber innerhalb des function-Bereiches geht das nicht mehr. Wieso???
Danke! - mit der Bitte um Nachsicht.
Hallo,
Kleine Verständnisfrage: Wenn ich z.B. am Anfang eines Scripts session_register("versuch"); sage, kann ich dann auch auf $versuch zugreifen, wenn diese innerhalb eines function-Bereiches benötigt wird, der mit dem include-Befehl eingegliedert wird?
Du solltest _immer_ mit $_SESSION['versuch'] auf die Variable zugreifen.
Das geht ueberall, auch in Funktionen, ohne weiteres, da $_SESSION eine
sogenannt "superglobale" Variable ist.
http://www.php.net/manual/en/reserved.variables.php
Uebrige Variablen von ausserhalb einer Funktion kannst Du auch
in der Funktion drin verwenden, wenn Du sie am Anfang der
Funktion mit dem Befehl "global" verfuegbar machst:
$test="blabla";
function bla()
{
echo $test; // Keine Ausgabe, da die Variable nicht definiert ist
global $test;
echo $test; // Ausgabe: blabla
}
Alternativ koenntest Du in dem Fall $_GLOBAL['test'] verwenden.
Lies mal im Manual den Abschnitt "Geltungsbereich von Variablen":
http://www.php.net/manual/de/language.variables.scope.php
Gruesse,
Thomas
Hallo,
Alternativ koenntest Du in dem Fall $_GLOBAL['test'] verwenden.
Sorry, wie Michael Nagler richtig schrieb, muss es heissen: $GLOBALS['test']
http://www.php.net/manual/en/reserved.variables.php#reserved.variables.globals
Gruesse,
Thomas
der jetzt definitiv ins Bett muss;-)
Hi!
Ganz einfach: innerhalb einer Funktion sind globale Variablen ausgeblendet. Darum musst du eine globale Variable extra definieren:
function tuwas()
{
global $versuch; // eine möglichkeit
$a = $GLOBALS["versuch"]; // andere möglichkeit
}
Mit freundlichen Grüßen,
Michael Nagler