在PHP中检查空和查询字符串参数缺失
问题描述:
我希望能够区分设置为空的现有查询字符串参数和缺少参数。所以,问题的部分是:在PHP中检查空和查询字符串参数缺失
- 我如何检查如果一个参数查询字符串
- 什么是对的查询字符串传递一个空值所建立的方法存在? (如PARAM = null或PARAM =(无))
感谢
答
或者使用array_key_exists
:
if(array_key_exists("myParam", $_GET)) {
}
我从来没有去过热衷于将空值传递给服务器的'约定' - 我习惯于测试变量的存在和然后修剪它们并测试空白,例如。
答
存储在$_GET
和$_POST
中的值只能是字符串或数组,除非在运行时显式设置。如果您有一个查询字符串query=string
,则值为"string"
,如果您改用:query=null
,该值将为"null"
。请注意,它是一个字符串。
如果您发送:query=
,值将是""
或空字符串。注意isset
和empty
之间的differences。如果值不为空,则isset
将为真,而当值为false
时,empty
将为真。因此,""
将为均为isset
和empty
。
如果你只是想检查查询字符串参数被设置为"null"
字符串值,你可以简单地检查$_GET['query']=='null'
(你可能要检查前调整字符的大小写)
答
有了一个如果声明而不是两个:
if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
$name= $_REQUEST['name'];
}
+1!正确答案,但使用`empty()`时不需要`isset()`,因为`empty()`意味着`isset()`。这在使用`!empty()`时尤其重要。你应该为问题的第二部分添加明确的答案。 – jwueller 2010-12-07 23:20:24