phpbar.de logo

Mailinglisten-Archive

[php] Superglobals in Klassen

[php] Superglobals in Klassen

Niels Runge info at runge.it
Mon Okt 2 14:58:22 CEST 2006


Hi Lutz,

Lutz Zetzsche wrote:
> Am Montag, 2. Oktober 2006 14:45 schrieb Niels Runge:
>   
>> folgendes ist wohl sinnvoller ->
>>
>>     function show() {
>>         $transmit_method='POST';
>>         print_r($GLOBALS['_'.$transmit_method]);
>>     }
>>     
>
> das ist mal eine coole Lösung. :-))) Ich frage mich aber immer noch, was 
> da intern in PHP passiert, daß es halt außerhalb von Funktionen und 
> Methoden funktioniert, innerhalb aber nicht... Gibt es vielleicht 
> irgendjemanden hier, der sich in den Tiefen von PHP so auskennt, daß er 
> die Antwort darauf weiß? :-) Die würde mich nämlich wirklich 
> interessieren... ;-)
>   
Alex schrieb ja schon dass im Manual folgendes steht ->
Please note that variable variables cannot be used with PHP's 
Superglobal arrays  within functions or class methods.

Ich denke PHP sucht in Funktionen/Methoden nach der lokalen Variable . 
Selbst wenn man vorher probiert per $_POST = array('abc') die Variable 
zu definieren/verändern, dann greift man automatisch auf die 
Superglobale drauf zu (macht ja auch nur so Sinn). Und dadurch kann man 
keine lokale Variable definieren die den Namen einer Superglobale hat.

$_POST = array('testvar' => 1234);
function test() {
    $_POST = array(2);   
}
print_r($_POST);
test();
print_r($_POST);

Aber nur ne Vermutung ;-)

Gruß
Niels

php::bar PHP Wiki   -   Listenarchive