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); } Zitieren
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] Zitieren
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 :-) Zitieren
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. Zitieren
kills Geschrieben 14. September 2004 Autor Geschrieben 14. September 2004 danke für den hinweis Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.