Variablenzugriff innerhalb Funktionen

Tach Comunity,

irgendwie peile ich das nicht.

habe eine datei mit variablen definitionen . die wird in meine mainpage inkludiert.

irgendwo wird dann eine funktion aufgerufen… die mit diesen variablen arbeiten soll… die sind aber nicht bekannt. nur wenn ich diese der funktion beim aufrufen explizit uebergebe. da es sich um sehr viele vars handelt… ist das ziemlich bloed… und auch unuebersichtlich zu warten.

nun hatte ich zum einen die idee einfach ein objekt mit den vars der funktion zu uebergeben… .gibts nicht noch ne bessere moeglichkeit?

irgendwie globale variablen oder so?

grusz

PixelKoenig

irgendwie globale variablen oder so?

grusz

PixelKoenig

könntest die Variablen doch in einer Session bzw. in einem Cookie speichern?!

globalisierung ist so ne Sache…
Du kannst z.B. so verfahren

$test = "Hallo Welt";
$test2 = "Hallo Echo";

function machwas()
{
global $test, $test2;
return $test."
".$test2;
}

echo machwas();

schwieriger wirds, wenn Deine Variablen in einer anderen Funktion belegt werden…

function belegmich()
{
global $test, $test2;
$test = "Hallo Welt";
$test2 = "Hallo Echo";
}

function machwas()
{
global $test, $test2;
return $test."
".$test2;
}

echo machwas(); // sollte maximal Fehler ausgeben
belegmich();
echo machwas(); // sollte jetzt was machen...

nun hatte ich zum einen die idee einfach ein objekt mit den
vars der funktion zu uebergeben… .gibts nicht noch ne
bessere moeglichkeit?

die Lösung mit dem Object ist doch gar nicht schlecht:

function foo($var){
print_r($var);
}

$obj = new stdObject;

$obj->var1 = „foo“;
$obj->var2 = „bar“;
$obj->usw = „usw“;

foo($obj); => gibt das Objekt aus.

Hi,

du kannst die initialisierung in Konstanten ablegen.
define(„OS“, „Windows XP Home“);
define(„HEUTE“, date() );

mit
echo OS;
gibt es den String „Windows XP Home“…
und sind überall in dem Script erreichbar welches ‚included‘

Gruß
Marc

Nachteil ist dass es dann Konstanten sind die nicht mehr geändert werden können.

mfg Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]