Проверка нулевых и отсутствующих параметров строки запроса в PHP
Я хочу иметь возможность различать существующие параметры строки запроса, установленные в null, и отсутствующие параметры. Таким образом, части вопроса:
- Как проверить, если параметр существует в строке запроса
- каков установленный метод передачи значения null в строке запроса? (напр. param=null или парам=(ничего) )
спасибо
4 ответов
или использовать array_key_exists:
if(array_key_exists("myParam", $_GET)) {
}
Я никогда не увлекался "соглашениями" для передачи пустых значений на сервер - я привык тестировать наличие переменных, а затем обрезать их и тестировать на пустоту, например.
значения, хранящиеся в $_GET и $_POST могут быть только строки или массивы, если явно не установить во время выполнения. Если у вас есть строка запроса query=string значение "string" Если вы вместо этого используете:query=null значение будет "null". Обратите внимание, что это строка.
если вы посылаете: query=, это значение будет "" или пустая строка. Обратите внимание на различия между isset и empty. isset будет true, если значение не null, а empty будет true, когда значение будет равно false. Поэтому!--7--> на и isset и empty.
если вы просто хотите проверить, был ли параметр строки запроса установлен в строковое значение "null", вы можете просто проверить $_GET['query']=='null' (вы можете настроить регистр символов перед проверкой)
С одним оператором if вместо двух:
if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
$name= $_REQUEST['name'];
}