Zitat von
Gaert
Globale Variablen sind ein Übel, was man am besten vermeiden sollte.
Ich weiß, aber für dieses konkrete Script will ich, daß keine Parameter an die Funktion übergeben werden müssen.
Mir serialize und unserialize funktioniert es.
Vielen Dank.
Dennoch hier noch der Code zu dem Problem:
Zuerst das Array um das es geht:
PHP-Code:
$filelist = array( "name1" => array( "file1.zip",
"description1"),
"name2" => array( "file2.zip",
"description2"),
"name3" => array( "file3.zip",
"description3"));
Hier die erste Version mit globaler Variable die nicht funktioniert:
PHP-Code:
function foo()
{
global $global_var1, $global_var2, $filelist;
// do something
return $something;
}
foo();
Es hatte den Eindruck als wäre die Struktur des Arrays verloren gegangen. (möglicherweise weil die globalen Variablen von PHP intern auch als Array behandelt werden - aber auch der Aufruf $GLOBALS["filelist"] brachte nichts).
Diese Variante funktionierte problemlos:
PHP-Code:
function foo($filelist)
{
global $global_var1, $global_var2;
// do something
return $something;
}
foo($filelist);
Die anderen globalen Variablen waren keine Arrays.
Ich habe jetzt folgende (funktionierende) Lösung:
PHP-Code:
$filelist_serialized=serialize($filelist);
function foo()
{
global $global_var1, $global_var2, $filelist_serialized;
$filelist=unserialize($filelist_serialized);
// do something
return $something;
}
foo();
Lesezeichen