[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.htmlBitte 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.htmlBitte 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);