Hallo,
hier gibt es doch einige PHP-Experten…
Je nach Request-Methode soll $VAR eine *REFERENZ* auf die entsprechenden SUPERGLOBALS enthalten:
// syntax error, & unexpected $VAR = $_SERVER["REQUEST_METHOD"] == "GET" ? &$_GET : &$_POST;
… ok, offenbar ist & kein Operator, der mir eine Refernz liefert, sondern der gesuchte Operator heißt „=&", also eine Zuweisung, die nicht den Wert, sondern die Referenz zuweist. (streitbarer Ansatz, aber naja), die Beispiele auf php.net suggerieren natürlich, daß „&“ für sich genommen ein Operator ist, oder eine syntaktische Ergänzung, um die Referenz einer Variablen zu erhalten: $x = &$y
// kein Syntax-Error $VAR =& $_SERVER["REQUEST_METHOD"] == "GET" ? $_GET : $_POST;
… aber $VAR ist dann einfach "GET" resp. "POST".
Was geht hier schief? Bin ich krank, oder die Stützräder?
Hallo Heiko
Am 13.10.2011 16:47, schrieb Heiko Schlittermann:
Hallo,
hier gibt es doch einige PHP-Experten…
Je nach Request-Methode soll $VAR eine *REFERENZ* auf die entsprechenden SUPERGLOBALS enthalten:
// syntax error,& unexpected $VAR = $_SERVER["REQUEST_METHOD"] == "GET" ?&$_GET :&$_POST;
Nimm die langschreibweise, da funktionierts.
if ( $_SERVER["REQUEST_METHOD"] == "GET" ) $VAR = &$_GET; else $VAR = &$_POST;
Gruß Robert
Robert sportfreund_robert@gmx.de (Thu Oct 13 17:05:51 2011):
Hallo Heiko
Am 13.10.2011 16:47, schrieb Heiko Schlittermann:
Hallo,
hier gibt es doch einige PHP-Experten…
Je nach Request-Methode soll $VAR eine *REFERENZ* auf die entsprechenden SUPERGLOBALS enthalten:
// syntax error,& unexpected $VAR = $_SERVER["REQUEST_METHOD"] == "GET" ?&$_GET :&$_POST;
Nimm die langschreibweise, da funktionierts.
if ( $_SERVER["REQUEST_METHOD"] == "GET" ) $VAR = &$_GET; else $VAR = &$_POST;
Schon klar. Aber wozu gibt es den ?:-Operator, wenn er nicht immer funktioniert.
Eigentlich wollte ich nur bestätigt haben, daß es an den Stützrädern liegt ☺ und dieses Sprache wirklich so krank ist.
Heiko Schlittermann hs@schlittermann.de (Thu Oct 13 16:47:43 2011):
Hallo,
hier gibt es doch einige PHP-Experten…
Je nach Request-Methode soll $VAR eine *REFERENZ* auf die entsprechenden SUPERGLOBALS enthalten:
// syntax error, & unexpected $VAR = $_SERVER["REQUEST_METHOD"] == "GET" ? &$_GET : &$_POST; … ok, offenbar ist & kein Operator, der mir eine Refernz liefert, sondern der gesuchte Operator heißt „=&", also eine Zuweisung, die nicht den Wert, sondern die Referenz zuweist. (streitbarer Ansatz, aber naja), die Beispiele auf php.net suggerieren natürlich, daß „&“ für sich genommen ein Operator ist, oder eine syntaktische Ergänzung, um die Referenz einer Variablen zu erhalten: $x = &$y // kein Syntax-Error $VAR =& $_SERVER["REQUEST_METHOD"] == "GET" ? $_GET : $_POST; … aber $VAR ist dann einfach "GET" resp. "POST".
… also offenbar eine Referenz auf $_SERVER["REQUEST_METHOD"]. Dann ist doch der Operator nicht „=&“, sondern „&“ selbst liefert eine Referenz… aber warum dann nicht, wenn ich es vor die $_GET bzw. $_POST Variablen schreibe?
lug-dd@mailman.schlittermann.de