Что такое функция php для одновременной проверки существования параметра $ _GET и доступа к его значению - PullRequest
0 голосов
/ 02 ноября 2018

В PHP, чтобы избежать Undefined Index ошибок, можно написать

if(isset $_GET['var1'] && $_GET['var1'] == 'My Matching Text'){
    //do stuff
}

Но я помню, как использовал функцию (или языковую конструкцию), которая, я думаю, позволила бы что-то вроде этого:

if([THE FUNCTION I'M LOOKING FOR]($_GET['var1']) == 'My Matching Text'){
    //do stuff
}

Что это за функция, имя которой я забыл?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Вы думаете о функции filter_input?

if (filter_input(INPUT_GET, 'var1') == 'My Matching Text') {
    //do stuff
}

Требуется третий аргумент, в котором вы можете указать различные типы фильтров, которые могут быть полезны. Тип по умолчанию вообще не фильтруется, но возвращает значение (или ноль, если ключ не задан) без уведомления о неопределенном индексе.

Я не знаю, как это сравнивается с точки зрения производительности с использованием оператора объединения нулей, как показывают другие ответы, но я бы предположил, что этот вызов функции будет немного дороже, поэтому оператор будет лучшим способом идти, если вы не собираетесь использовать один из фильтров.

0 голосов
/ 02 ноября 2018

Вы можете использовать Нулевой оператор объединения (??) в PHP 7+, который позволяет вам установить «не определенное» значение (в этом примере я использовал пустое значение '') ...

if(($_GET['var1']??'') == 'My Matching Text'){
    //do stuff
}
...