我真的很讨厌全局变量——也许它是我心中的 C# 程序员,但是当我在 PHP 中工作时,我每次不得不做这样的事情时都会咬紧牙关:
$strUsername = $_GET['username'];
是的,我把它过分简化了,是的,我正确地清理了所有这些。事实上,对于我构建的框架,所有超全局变量几乎在执行开始时就被抓取,并且从那里开始依赖注入。
我在 PHP 手册中遇到过这个函数(你真的每天都能学到新东西):filter_input_array()。
所以现在,从技术上讲,我可以这样做,而不是从 GET 超全局中获取所有内容:
$GETdata = filter_input_array(INPUT_GET);
.... 等等,以及其他类似 POST、REQUEST 等。我的问题是:我应该使用 filter_input_array 来避免超全局变量的祸害,还是有一些理由坚持使用它们而忘记使用filter_input 函数?其他人对此有何经验?
编辑:我忘了一件事 - filter_input 函数对您对超全局变量所做的任何脚本级别的修改都视而不见,所以如果我这样做:稍后再$_GET['cheese'] = 'puff';
尝试将返回 null。filter_input(INPUT_GET, 'cheese');
这很好,因为我依赖注入所有东西,但如果他们不知道,它可能会在以后让某人措手不及。