Mailinglisten-Archive |
Hi Niels,
Am Montag, 2. Oktober 2006 15:47 schrieb Niels Runge:
> hmm, also ich meinte auch die ganze Zeit nur die Superglobalen ;-)
> Von definiert/undefiniert habe ich eigentlich auch nie gesprochen,
> egal.
doch, hier: "Und dadurch kann man keine lokale Variable definieren die
den Namen einer Superglobale hat." Ich habe das vermutlich nur etwas
anders interpretiert, als Du es gemeint hast. :-)
> Also so denke ich es halt
>
> <?php
> $foo = 1;
>
> function bar() {
> global $foo;
>
> echo $foo;
>
> }
> ?>
>
> Hier spricht man die lokale Variable $foo an, die allerdings eine
> Referenz zur globalen Variable $foo besitzt.
> Und bei Superglobalen spricht man eben immer direkt die Superglobale
> an, es kann keine lokale Variable existieren mit dem Namen einer
> Superglobalen.
Auch wenn Du vielleicht das Gefühl hast, daß wir etwas aneinander
vorbeireden, glaube ich, daß wir eher von unterschiedlichen
Voraussetzungen ausgehen. $foo in Deinem obigen Beispiel ist für mich
keine lokale, sondern eine globale Variable in der Funktion. Darauf
stütze ich auch meine Argumentation. Ich habe gerade noch mal ins
Handbuch geguckt. Wenn ich das richtig lesen, müßte meine Auslegung
auch stimmen:
"By declaring $a and $b global within the function, all references to
either variable will refer to the global version."
-> http://de2.php.net/manual/en/language.variables.scope.php
Und das ist der Punkt, weswegen ich dann meine, daß Deine Erklärung
leider nicht mehr ganz paßt. :-( Obwohl ich so gerne eine hätte... ;-)
Viele Grüße
Lutz
php::bar PHP Wiki - Listenarchive