我传统上使用filter_var()
功能消毒$_GET
和$_POST
数据,如:何时使用filter_input()与filter_var()?
$foo = filter_var($_GET['foo'], FILTER_SANITIZE_NUMBER_INT);
但是PHP也有一个功能filter_input()
,具有不同的语法来完成同样的事情:
$foo = filter_input(INPUT_GET, 'foo', FILTER_SANITIZE_NUMBER_INT);
这些只是同义词吗?使用一个优势是否有优势?
我已经检查了手册页,但是我没有看到很多不同(只报告/报告错误的方式)。语义/最佳实践,最有意义的是什么?
'filter_var'接受任何变量,所以你必须自己查找未定义的变量错误。 'filter_input'不是使用'$ _GET','$ _POST','$ _COOKIE','$ _ENV'或'$ _SERVER'的原始值,这意味着不会考虑对这些变量所做的任何修改。请参阅https://secure.php.net/manual/en/function.filter-input.php#115086 –
@CharlotteDunois,因此filter_input是filter_var的更具体的情况吗?看起来奇怪的是,PHP会有另外一种语法不同的功能,所以增加的好处很少。 – Sablefoste