Проверка нулевых и отсутствующих параметров строки запроса в 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'];
}