我试图确保在 URL 中设置了 GET 字符串,并且它的值是一个整数,但我无法让它工作。
if (isset($_GET['allusers']) && is_int($_GET['allusers'])) {
echo "works";
}
我的括号有问题吗?
我试图确保在 URL 中设置了 GET 字符串,并且它的值是一个整数,但我无法让它工作。
if (isset($_GET['allusers']) && is_int($_GET['allusers'])) {
echo "works";
}
我的括号有问题吗?
$_GET
变量不能是整数。它永远是一个字符串。
要测试它是否是数字字符串,请使用is_numeric()
:
if ( isset($_GET['allusers']) && is_numeric($_GET['allusers']) )
{
echo "works";
}
在您的代码中
isset($_GET['allusers'])
将被评估为真,但 is_int($_GET['allusers']) 不会,因为 $_GET 的值不是 int 的字符串,您可以将代码修改为
if (isset($_GET['allusers']) && is_int(intval($_GET['allusers']))) {
echo "works";
}
这将起作用
如果ctype_digit
您只期望非负整数,请使用。这将在这些情况下给出最好的结果,因为它只允许数字0-9
。
请注意,is_numeric
将返回true
可以转换为整数的字符串,包括负数和浮点数。一些is_numeric
将被视为的示例true
:
0xF5
(十六进制)-.0e-000
(一种奇怪的表达方式0.0
)-0.4