kills Geschrieben 13. September 2004 Geschrieben 13. September 2004 Hallo zusammen, der Topic hört sich komplizierter an, als es wirklich ist :floet: also folgendes: $sVar = '_GET["id"]'; echo $$sVar; // Notice: Undefined variable: _GET["id"] in D:\Development\PHP\MyProjects\error.php on line 29 echo $_GET["id"]; // 5 [/PHP] Wie muss ich es anstellen, das ich auf diese Super-Gobale Variable referenzieren kann? Sinn?! Also gut... ich baue mir grad eine CustomErrorFunc und will dort bestimmte parameter abfragen, ob sie gesetzt sind: [PHP]function requireParameter( $aParams, $sFile, $iLine) { foreach( $aParams as $sType => $sName) { switch( $sType) { case 'GET' : break; case 'POST' : break; case 'SERVER' : break; case 'REQUEST' : break; default : triggerCustomErrorr( 'Unexpected parametertype "'. $sType .'"', $sFile, $iLine, E_USER_ERROR); } $bError = false; if ( is_array( $sName)) { foreach( $sName as $sVarName) { $sVar = '_'. $sType .'["'. $sVarName .'"]'; if ( !isset( $$sVar)) { $bError = true; break; } } } else { $sVar = '_'. $sType .'["'. $sName .'"]'; if ( !isset( $$sVar)) { $bError = true; } echo $sVar; // _GET["id"] echo $$sVar; // Undefined Var echo $_GET["id"]; // 5 } if( $bError) { triggerCustomError( 'Missing parameter "'. $sName .'"', $sFile, $iLine, E_USER_ERROR); } } } function triggerCustomError( $sMessage, $sFile, $iLine, $sErrorType) { trigger_error( trim( $sMessage) .' in <b>'. $sFile . '</b> on line <b>'. $iLine .'</b><br/> <b>Custom error call</b> ', $sErrorType); }
etreu Geschrieben 13. September 2004 Geschrieben 13. September 2004 Wie wäre es denn mit der eval()-Funktion. Damit sollte sich dein Problem lösen lassen. Bsp: $value = eval("return \$_GET['id'];"); // oder in deinem Fall: $value = eval("return \$$sVar;"); [/PHP]
kills Geschrieben 13. September 2004 Autor Geschrieben 13. September 2004 Wie wäre es denn mit der eval()-Funktion. Damit sollte sich dein Problem lösen lassen. Bsp: $value = eval("return \$_GET['id'];"); // oder in deinem Fall: $value = eval("return \$$sVar;"); [/PHP] ja so hab ich es mittlerweile auch gelöst, ich dachte nur das es vielleicht schöner geht. aber danke :-)
etreu Geschrieben 13. September 2004 Geschrieben 13. September 2004 Unter Warnung steht folgender Hinweis: 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden