Проверка на наличие null и отсутствующих параметров строки запроса в PHP
-
09-10-2019 - |
Вопрос
Я хочу иметь возможность различать существующие параметры строки запроса, имеющие значение null, и отсутствующие параметры.Итак, части вопроса заключаются в следующем:
- Как мне проверить, есть ли параметр существует в строке запроса
- Каков установленный метод передачи нулевого значения в строке запроса?(например,param=null или param=(ничего) )
Спасибо
Другие советы
Или использовать 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
.Для этого ""
будет верным для и то , и другое isset
и empty
.
Если вы просто хотите проверить, был ли установлен строковый параметр запроса в строковое значение "null"
, вы можете просто проверить $_GET['query']=='null'
(возможно, вы захотите изменить регистр символов перед проверкой)
С одним утверждением, а не двумя:
if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
$name= $_REQUEST['name'];
}