1

我试图确保在 URL 中设置了 GET 字符串,并且它的值是一个整数,但我无法让它工作。

if (isset($_GET['allusers']) && is_int($_GET['allusers'])) {

    echo "works";

}

我的括号有问题吗?

4

4 回答 4

5

$_GET变量不能是整数。它永远是一个字符串。

要测试它是否是数字字符串,请使用is_numeric()

if ( isset($_GET['allusers']) && is_numeric($_GET['allusers']) )
{
    echo "works";
}
于 2012-06-08T17:37:47.777 回答
0

在您的代码中

isset($_GET['allusers'])

将被评估为真,但 is_int($_GET['allusers']) 不会,因为 $_GET 的值不是 int 的字符串,您可以将代码修改为

if (isset($_GET['allusers']) && is_int(intval($_GET['allusers']))) {

    echo "works";

}

这将起作用

于 2012-06-08T17:43:20.047 回答
0

如果ctype_digit您只期望非负整数,请使用。这将在这些情况下给出最好的结果,因为它只允许数字0-9

请注意,is_numeric将返回true可以转换为整数的字符串,包括负数和浮点数。一些is_numeric将被视为的示例true

  • 0xF5(十六进制)
  • -.0e-000(一种奇怪的表达方式0.0
  • -0.4
于 2012-06-08T17:48:53.717 回答
-1

is_int返回false一个字符串,这就是一个 GET 变量。

var_dump(is_int("23"));
bool(false)

您应该使用is_numeric instad。

于 2012-06-08T17:40:46.803 回答