Mailinglisten-Archive |
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