phpbar.de logo

Mailinglisten-Archive

[php] Superglobals in Klassen

[php] Superglobals in Klassen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Okt 2 15:57:36 CEST 2006


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