【发布时间】:2017-05-19 03:00:03
【问题描述】:
我正在使用 PHP 和 filter_input 函数来过滤 GET 变量并验证它们:
$id = filter_input(INPUT_GET, "id", FILTER_VALIDATE_INT);
但是当 id 参数在 URL 中不存在时,上面的语句会使 $id 为 NULL。
我希望 $id 成为 false 时:
- 它不是一个有效的整数或
-
$_GET["id"]不存在。
这样,当我想检查$id 是否一般有效时,我只将它与false 进行比较。 有没有办法用一个语句验证输入变量并检查其是否存在?我认为在上述条件下最好使用$idNULL,因此布尔输入没有问题。
目前我正在使用上述语句和以下if 块:
if ($id !== false && $id !== NULL) {
// statements to run when $id is valid and present
}
【问题讨论】:
-
零也是无效ID吗?
-
@Scopey 是的,它可能是。我想要这个问题的通用解决方案。也请考虑其他基本数据类型(字符串、布尔值、浮点数)。
-
isset为null值返回 false。这不包括$id === false的情况。您可以尝试is_int($id),因为它应该涵盖所有有效情况,包括零。 -
@Scopey 太好了。我认为这也适用于具有类似功能的其他数据类型。 +1
-
@deceze 你甚至有一篇关于
isset用法的博文!一切都好 - 很高兴能提供帮助。
标签: php validation input