Php settype()与filter_var()的比较
如果下面几行更好地用于确保我的代码更安全,那么这一点就更好了。我应该使用filter_var函数的settype函数吗Php settype()与filter_var()的比较,php,sanitization,data-cleaning,Php,Sanitization,Data Cleaning,如果下面几行更好地用于确保我的代码更安全,那么这一点就更好了。我应该使用filter_var函数的settype函数吗 settype($number,'integer') 或 谢谢你settype和(int)比filter\u var更好。因为filter\u var有很多逻辑判断。正如filter\u SANITIZE\u NUMBER\u INT所说: 删除除数字、加号和减号以外的所有字符 因此,如果您希望在SQL查询中使用一个ID,我将使用正则表达式检查我是否只有数字/^[0-9]+
settype($number,'integer')
或
谢谢你
settype
和(int)
比filter\u var
更好。因为filter\u var
有很多逻辑判断。正如filter\u SANITIZE\u NUMBER\u INT
所说:
删除除数字、加号和减号以外的所有字符
因此,如果您希望在SQL查询中使用一个ID,我将使用正则表达式检查我是否只有数字/^[0-9]+$/
。因为FILTER\u SANITIZE\u NUMBER\u INT
将允许-12
,这在本文中没有意义
filter_var和settype之间的主要区别在于,一个将变量解析为字符串并返回字符串,另一个将其转换为整数
$string = "+12";
var_dump(filter_var($string, FILTER_SANITIZE_NUMBER_INT));
settype($string, "integer");
var_dump($string);
输出:
string(3) "+12"
int(12)
因此,它实际上取决于上下文。或者将其转换为带有
(int)
的int。这三个选项都是一样的。这取决于你想用$number
做什么。哥们,我想你需要一些sleep@Mathieu对不起,也许我也需要一些睡眠!
string(3) "+12"
int(12)