微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

is_int()无法在PHP中检查$_GET?

这是我的代码
<?PHP
$id = $_GET["id"];

if (is_int($id) === FALSE)  {
    header('HTTP/1.1 404 Not Found');
    exit('404,page not found');
    }
?>

它总是进入if.

is_int检查数据类型是否为整数,但$_GET中的所有内容都是字符串.因此,它总是会返回false.

在紧要关头,您可以转换为整数,然后检查!= 0.

$id = isset($_GET['id']) ? (int) $_GET['id'] : null;

if (!$id) { // === 0 || === null
  header('HTTP/1.1 404 Not Found');
  exit('404,page not found');
}

但是更强大的解决方案将涉及某种类型的输入字符串验证/过滤,如PHP的内置filter_input_array().

(10月13日编辑,因为它仍然收到了赞成票,而且措辞有些令人困惑.)

原文地址:https://www.jb51.cc/php/136946.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐