php 检查变量是否为整数
2022-08-30 13:03:53
有没有更好的方法来做到这一点?
if( $_POST['id'] != (integer)$_POST['id'] )
echo 'not a integer';
我试过了
if( !is_int($_POST['id']) )
但由于某种原因不起作用。is_int()
我的表单如下所示
<form method="post">
<input type="text" name="id">
</form>
我已经研究过了,似乎如果is_int()
is_int('23'); // would return false (not what I want)
is_int(23); // would return true
我也试过is_numeric()
is_numeric('23'); // return true
is_numeric(23); // return true
is_numeric('23.3'); // also returns true (not what I want)
看来唯一的办法就是:[这是不好的办法,不要做,见下面的注解]
if( '23' == (integer)'23' ) // return true
if( 23 == (integer)23 ) // return true
if( 23.3 == (integer)23.3 ) // return false
if( '23.3' == (integer)'23.3') // return false
但是有没有一个功能来做上述事情?
只是为了澄清,我想要以下结果
23 // return true
'23' // return true
22.3 // return false
'23.3' // return false
注意:我刚刚弄清楚我之前提出的解决方案将对所有字符串返回true。(感谢红雷加)
$var = 'hello';
if( $var != (integer)$var )
echo 'not a integer';
// will return true! So this doesn't work either.
这不是检查变量是否是PHP中的整数的副本,因为我对整数的要求/定义与那里不同。