PHP:is_int返回错误的结果
问题描述:
我被一个形式和PHP文件使用var_dump(is_int($my_var));
发布的数值,但它返回bool(false)
虽然我张贴,如果我用var_dump(is_int(1));
它是罚款,并返回bool(true)
什么是错的。 ...?PHP:is_int返回错误的结果
答
通过POST请求传输的变量是字符串,所以您在返回false的字符串上调用is_int()
。
您可以使用is_numeric()
或filter_var()
来替代或者简单地将您的变量转换为整数。
+0
感谢您指出我的错误... – 2012-07-09 12:25:20
答
// First check if it's a numeric value as either a string or number
if(is_numeric($int) === TRUE){
// It's a number, but it has to be an integer
if((int)$int == $int){
return TRUE;
// It's a number, but not an integer, so we fail
}else{
return FALSE;
}
// Not a number
}else{
return FALSE;
}
而且,不但得不到变量
$my_var = $_POST["value"];
试试这个,而不是看是否值真的过去了。
$my_var = $_REQUEST["value"];
+0
您可以将整个代码片段缩减为'return(int)$ int == $ int;' – KingCrunch 2012-07-09 12:22:46
var_dump($ my_var);'return? – Bjoern 2012-07-09 12:04:04
检查$ my_var类型,如果is_int($ my_var)返回false,则$ my_var必须不是整数 – Ben 2012-07-09 12:04:59
如果您的变量'$ my_var'包含表单的输入(如您的第一句话所示),它将包含键入字符串 - php不会自动转换表单数据。 – codeling 2012-07-09 12:05:32