php地址请求


php address request

我有这个请求方法:

if (!$_REQUEST['0'])  {
    echo "Address missing...";
    die();
} else {
    code
    code etc.
}

地址是:http://localhost/api.php?0=地址

如果我打开:api.php?0=0,我会得到另一个错误,说地址不正确。但我得到了Address missing。。。在我看来,有问题

if (!$_REQUEST['0']) 

有什么想法吗?

您正在检查$_REQUEST['0']是否为false。在PHP(和许多其他语言(中,0代表false。因为0==false,所以表达式的结果为"true",并且执行echodie()

如果您正在尝试测试$_REQUEST['0']是否存在,则应使用isset((或empty((

if(!isset($_REQUEST['0']))
{
    die("Address not provided");
}
else
{
    // code
}
  if (empty ($_REQUEST['0'])) 
  {
      echo "Address doesn't provided...";
      die();
  } else {
     code
     code etc.
if (array_key_exists('0', $_REQUEST['0']) === true) {
    echo 'exists';
}
else {
    echo 'does not';
}

旁注:查看数组中是否设置了键的最佳检查方法是array_key_exists。与isset相反,当值为NULL时,此函数不会返回false。

旁注2:您应该指定要使用的超全局,使用$_REQUEST而不是指定$_POST或$_GET可能会导致出现模糊错误。