[PHP] Variable Variablen



  • AB und zu braucht man leider noch Variable variablen und dazu hab ich bis jetzt immer den $$varname syntax hergenommen. eigtl veraltet bin ich auf den neueren syntax {varname} gekommen. gleich ausprobiert sieht das ganze in der ersten version so aus

    print_r(${'_GET'});
    

    soweit funktioniert auch alles. erweitere ich jetzt das ganze aber auf

    isset($_POST['sid']) ? $method = '_POST' : $method = '_GET';
    		print_r(${'_GET'});
    

    komt nurnoch die fehlermeldung

    May 05 23:52:16  [notice] Undefined variable: _GET
    

    wo doch aber eigtl der inhalt der gleiche ist oder ueberseh ich hier ein kleines detail?

    lg



  • isset($_POST['sid']) ? $method = '_POST' : $method = '_GET';
    		print_r(${$method});
    

    mein ich natuerlich hier



  • {method} entspricht ja nun $_GET und das kannst Du als Name wahrscheinlich nicht verwenden da Du damit ja die Übergaben der Forms (url get) handhabst.

    $method = '_GET';

    Verstehe nicht ganz was Du damit bezwecken willst oder was Du damit machen willst.

    MfG
    Firefox2000



  • ich moecht eigtl im 1. schritt herrausfinden ob die parameter per POST oder GET uebertragen wurden so dass ich im 2. schritt dann abhaengig davon auf das entsprechende array zugreifen kann.



  • Dann zeig doch mal deinen kompletten Quellcode, denke das Du die Variablen einzeln checken musst ob sie übergeben wurden oder nicht.

    parameter per POST oder GET uebertragen wurden

    Würde ich mit einer extra Variable machen.



  • aus mehr besteht der quelltext eigentlich noch nicht

    public function check_params()
    	{
    		isset($_POST['sid']) ? $method = '_POST' : $method = '_GET';
    		print_r(${'_GET'});
    	}
    

    aber du meinst eher die beiden arrays (GET & POST) mit merge zusammen zufuegen zu einer neuen variable und mir damit den ganzen umstand ersparen?



  • Zur variablen Variable schau mal hier vorbei:
    http://www.php-center.de/de-html-manual/language.variables.variable.html

    Bitte beachten Sie, dass variable Variablen nicht bei Superglobalen Arrays verwendet werden können. Das bedeutet, etwas wie {_GET} ist nicht möglich. Wenn Sie nach einer Möglichkeit suchen, die Verfügbarkeit von Superglobalen und den alten HTTP_*_VARS zu handhaben, können Sie das mit referenzieren versuchen



  • ah ok danke 🙂 die warnung stand im php-manual wohl nicht dabei. dann muss es wohl anders gehn



  • das ist mal typisch beim inkontingenten php frickelwerk...



  • Firefox2000 schrieb:

    Zur variablen Variable schau mal hier vorbei:
    http://www.php-center.de/de-html-manual/language.variables.variable.html

    Bitte beachten Sie, dass variable Variablen nicht bei Superglobalen Arrays verwendet werden können. Das bedeutet, etwas wie {_GET} ist nicht möglich. Wenn Sie nach einer Möglichkeit suchen, die Verfügbarkeit von Superglobalen und den alten HTTP_*_VARS zu handhaben, können Sie das mit referenzieren versuchen

    Also das Problem lässt sich sehr leicht mit einer Referenz lösen?

    $params = &$_GET;
    if( !isset($params['pid'])) $params = &$_POST;
    
    print_r( $params);
    

Anmelden zum Antworten