我传统上使用一个filter_var()功能来清理$_GET和$_POST数据,例如:
$foo = filter_var($_GET['foo'], FILTER_SANITIZE_NUMBER_INT);
Run Code Online (Sandbox Code Playgroud)
但PHP也有一个函数filter_input(),它有不同的语法来完成同样的事情:
$foo = filter_input(INPUT_GET, 'foo', FILTER_SANITIZE_NUMBER_INT);
Run Code Online (Sandbox Code Playgroud)
这些只是同义词吗?使用一个优于另一个是否有优势?
我检查了手册页,但我没有看到很多区别(只是报告错误是否/如何报告).语义/最佳实践,最有意义的是什么?
Abr*_*ver 13
其中一个主要区别是它们如何处理未定义的变量/索引.如果$_GET['foo']不存在:
$foo = filter_var($_GET['foo'], FILTER_SANITIZE_NUMBER_INT);
Run Code Online (Sandbox Code Playgroud)
返回一个空字符串""并生成:
注意:未定义的索引:foo
所以你通常需要把它包装成一个if(isset($_GET['foo'])).
鉴于:
$foo = filter_input(INPUT_GET, 'foo', FILTER_SANITIZE_NUMBER_INT);
Run Code Online (Sandbox Code Playgroud)
返回NULL并且不会生成错误.
| 归档时间: |
|
| 查看次数: |
3115 次 |
| 最近记录: |