Для чтения неизвестных переменных в PHP часто я использую код, подобный следующему:
$bar = isset($_GET['foo']['bar']) ? $_GET['foo']['bar'] : NULL;
Мне не нравится писать имя переменной дважды. Это выглядит некрасиво и слишком долго для такой повседневной задачи.
Знаете ли вы лучшее решение? Просто использование оператора @
или подавление уведомлений вообще не вариант (плохая практика, медленно).
С пользовательской функцией и переменной по ссылке это как-то возможно:
function ifset(&$value)
{
if(isset($value)) return $value;
}
$bar = ifset($_GET['foo']['bar']); // $_GET is empty
Однако это создает новые нежелательные переменные с таким именем / путем. A var_dump($_GET)
будет печатать:
array(1) {
["foo"]=>
array(1) {
["bar"]=>
NULL
}
}