我有这个请求方法:
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",并且执行echo
和die()
。
如果您正在尝试测试$_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可能会导致出现模糊错误。