我希望能够区分设置为null的现有查询字符串参数和缺少参数。因此,问题的部分是:

  • 如何检查参数是否 存在 在查询字符串中
  • 在查询字符串中传递零值的已建立方法是什么? (例如param = null或param =(nothing))

谢谢

有帮助吗?

解决方案

利用 isset()empty()

if (isset($_REQUEST['param']))
{
  // param was set in the query string
   if(empty($_REQUEST['param']))
   {
     // query string had param set to nothing ie ?param=&param2=something
   }
}

其他提示

或使用 array_key_exists:

if(array_key_exists("myParam", $_GET)) {

}

我从来没有热衷于将空值传递给服务器的“约定” - 我习惯于测试存在变量,然后修剪它们并测试空虚。

存储在 $_GET$_POST 除非在运行时明确设置,否则只能是字符串或数组。如果您有一个查询字符串 query=string 值是 "string" 如果您使用: query=null 值将是 "null". 。请注意,它是一个字符串。

如果您发送: query=, ,价值将是 "" 或空字符串。注意 差异 之间 issetempty. isset 如果值不是零,则将是正确的 empty 当价值评估到 false. 。因此 "" 将是正确的 两个都 issetempty.

如果您只想检查查询字符串参数是否设置为 "null", ,您可以简单地检查 $_GET['query']=='null' (您可能需要在检查之前调整字符的情况)

使用一个if语句而不是两个:

if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
    $name= $_REQUEST['name'];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top