К сожалению, это единственный способ сделать это.Но есть подходы для работы с большими массивами.Например, что-то вроде этого:
$required = array('myvar', 'foo', 'bar', 'baz');
$missing = array_diff($required, array_keys($_GET));
Переменная $ missing теперь содержит список значений, которые необходимы, но отсутствуют в массиве $ _GET.Вы можете использовать массив $ missing для отображения сообщения посетителю.
Или вы можете использовать что-то вроде этого:
$required = array('myvar', 'foo', 'bar', 'baz');
$missing = array_diff($required, array_keys($_GET));
foreach($missing as $m ) {
$_GET[$m] = null;
}
Теперь у каждого обязательного элемента по крайней мере есть значение по умолчанию.Теперь вы можете использовать if ($ _ GET ['myvar'] == 'что-то'), не беспокоясь о том, что ключ не установлен.
Обновление
Еще одинспособ очистки кода будет использовать функцию, которая проверяет, установлено ли значение.
function getValue($key) {
if (!isset($_GET[$key])) {
return false;
}
return $_GET[$key];
}
if (getValue('myvar') == 'something') {
// Do something
}