我应该使用PHP Superglobals还是过滤输入来检索$ _GET数据?
|
我真的很讨厌全局变量-也许是我自己的C#程序员,但是当我在PHP中工作时,每次需要执行以下操作时,我都会g之以鼻:
$strUsername = $_GET[\'username\'];
是的,我在很大程度上简化了它,是的,我对所有这些都进行了适当的消毒。实际上,对于我构建的框架而言,几乎所有超全局变量都几乎在执行开始时就被抓住,并从那里开始进行依赖注入。
我在PHP手册中遇到了这个功能(您每天都会真正学习到一些新知识):filter_input_array()。
因此,现在,从技术上讲,我可以执行此操作,而不是从GET superglobal中获取所有内容:
$GETdata = filter_input_array(INPUT_GET);
....依此类推,还有其他类似的东西,例如POST,REQUEST等。我的问题是:我应该使用filter_input_array以避免超级超人的祸害,还是有某些理由坚持使用它们,而忘记使用filter_input函数?其他人对此有何经验?
编辑:我忘记了一件事-filter_input函数对您对超全局变量所做的任何脚本级修改都是盲目的,所以如果我这样做:$_GET[\'cheese\'] = \'puff\';
稍后再尝试filter_input(INPUT_GET, \'cheese\');
将返回null。这很好,因为我依赖注入了所有内容,但是如果他们不知道,它稍后可能会使某人措手不及。
没有找到相关结果
已邀请:
7 个回复
阀傻
泉秘胁
这样就解决了将全局变量视为错误的原因。
桑娠贯涤
氏脑
并在需要时使用该数组。这样可以解决许多与全局相关的错误,并避免您花费大量时间调试这些难以找到的全局变量。 我认为
是wtg!
补蹲农界维
,有时我甚至使用
。 在某些项目中,我有一个特殊的类,该类处理
,
,
并执行以下操作:
或
或
...
铰齐插
畦桨存灯