我刚开始使用netbeans来编写PHP代码,并注意到我收到了几个代码警告声明我不应该使用$ _POST这样的超级全局。相反,我应该使用过滤器。
我已经对filter_input
进行了一些研究并且非常了解它,但是对于一个特定的暗示有一个问题 - 检查一个变量的存在。
如果我的代码目前看起来像这样:
if(isset($_POST['name'])) {
... do something ...
}
我知道我可以改用:
if(filter_has_var(INPUT_POST, 'name')) {
... do something ...
}
但是,如果我想简单地检查是否存在任何POST变量,该怎么办?即:
if(isset($_POST)) {
.. do something ...
}
使用下面的代码似乎有效,但我不想继续使用它而不了解这是做什么,或者它是否正确。
if(filter_input(INPUT_POST)) {
... do something ...
}
有人可以提供一些建议吗?感谢。
答案 0 :(得分:0)
我很抱歉迟到了,但我正在寻找相同的回应。我发现我们可以使用filter_input_array,其中定义可以是过滤器常量,例如FILTER_SANITIZE_STRING,因为所有$ _POST元素都是字符串。
if (filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING)) {
... do something ...
}
我还测试了你提出的代码
if(filter_input(INPUT_POST)) {
... do something ...
}
和filter_input(INPUT_POST)始终返回NULL并显示警告,因为filter_input至少需要两个参数。