加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:19:18 所属栏目:PHP教程 来源:网络整理
导读:这是我的代码: ?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. 在紧要关头,
这是我的代码:
<?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日编辑,因为它仍然收到了赞成票,而且措辞有些令人困惑.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读