Lieber dedlfix,
Auf $GLOBALS['foo'] kann im globalen Kontext auch mit $foo zugegriffen werden. Und umgekehrt stehen in $GLOBALS bereits alle globalen Variablen drin.
Danke für Deine Erklärung - ich bin nicht schlauer geworden... :-(
Ich gebe Dir ein Beispiel:
<?php
// Wo ist eine Variable global verfügbar?
$will_global_sein = true;
function test1($param1) {
global $will_global_sein;
echo "Testmechanismus: $param1<br />";
echo "Testvariable global? '"
. (isset($will_global_sein) ? 'ja' : 'nein')
. "'<br />";
}
function test2($param2) {
global $will_global_sein;
echo "Testmechanismus: $param2<br />";
echo "Testvariable global? '"
. (isset($GLOBAL['will_global_sein']) ? 'ja' : 'nein')
. "'<br />";
}
test1('ohne GLOBALS');
test2('mit GLOBALS');
?>
Der zweite Funktionsaufruf gibt ein "nein" aus... das verstehe ich jetzt wirklich nicht!
Ich empfinde es als bequemer, wenn ich nicht in jeder Funktion meine Variablen erst auf global schalten muss, sondern wenn ich einfach ein superglobales Array mit meinen Werten über ein Unterarray befüllt habe.
Warum sollte ich nun auf mein Unterarray in $_SERVER verzichten und lieber zu $GLOBALS wechseln? Und wie ist das, wenn $_SERVER selbst offensichtlich sowieso nur ein Unterarray von $GLOBALS ist??
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)