我正在尝试确保在URL中设置了GET字符串,并且它的值是一个整数,但我无法使其工作。
if (isset($_GET['allusers']) && is_int($_GET['allusers'])) {
echo "works";
}
我的括号做错了吗?
答案 0 :(得分:5)
$_GET
变量不能是整数。它总是一个字符串。
要测试是否为数字字符串,请使用is_numeric()
:
if ( isset($_GET['allusers']) && is_numeric($_GET['allusers']) )
{
echo "works";
}
答案 1 :(得分:0)
在您的代码中
isset($_GET['allusers'])
将被评估为真实但是 is_int($ _ GET ['allusers'])不会因为$ _GET的值是一个字符串而不是int你可以修改你的代码
if (isset($_GET['allusers']) && is_int(intval($_GET['allusers']))) {
echo "works";
}
这将有效
答案 2 :(得分:0)
如果您只期望非负整数,请使用ctype_digit
。这将在这些情况下提供最佳结果,因为它只允许 数字0-9
。
请注意is_numeric
将返回true
表示可以转换为整数的字符串,包括负数和浮点数。 is_numeric
将考虑true
的一些示例:
0xF5
(十六进制)-.0e-000
(一种表达0.0
的奇怪方式)-0.4
答案 3 :(得分:-1)