Um unbekannte Variablen in PHP zu lesen, verwende ich oft Code wie den folgenden:
$bar = isset($_GET['foo']['bar']) ? $_GET['foo']['bar'] : NULL;
Ich mag es nicht, den Namen der Variablen zweimal zu schreiben. Das sieht einfach hässlich aus und ist zu lang für eine so alltägliche Aufgabe.
Kennen Sie eine bessere Lösung? Verwenden Sie einfach die @
Operator oder die Unterdrückung von Meldungen ist überhaupt keine Option (schlechte Praxis, langsam).
Mit einer benutzerdefinierten Funktion und einer Referenzvariablen ist es irgendwie möglich:
function ifset(&$value)
{
if(isset($value)) return $value;
}
$bar = ifset($_GET['foo']['bar']); // $_GET is empty
Dadurch werden jedoch stillschweigend neue, unerwünschte Variablen mit diesem Namen/Pfad erstellt. A var_dump($_GET)
drucken würde:
array(1) {
["foo"]=>
array(1) {
["bar"]=>
NULL
}
}