filter_var 和验证整数值

Kai*_*aan 5 php

我正在尝试验证我的变量是否是 32 位有符号整数。

我以为我可以使用filter_var()andFILTER_VALIDATE_INT但显然 PHP 对 int 的定义是完全不同的,999999999999999999没有问题。

查看PHP 文档,它没有说任何具体内容。那么实际上filter_var($var, FILTER_VALIDATE_INT)验证了什么?

dbr*_*ann 1

我认为你的问题更多地在于整数

整数的大小取决于平台,但通常的最大值约为 20 亿(即 32 位有符号)。64 位平台的最大值通常约为 9E18,但 Windows 除外,它始终为 32 位。PHP 不支持无符号整数。从 PHP 4.4.0 和 PHP 5.0.5 开始,可以使用常量 PHP_INT_SIZE 确定整数大小,并使用常量 PHP_INT_MAX 确定最大值。

FILTER_VALIDATE_INT允许 min_range 和 max_range 作为选项传递。你可能应该使用那些。