Я только начал использовать 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 ...
}
Кто-нибудь может дать совет? Благодарю.
Извините за опоздание, но я искал тот же ответ. Я обнаружил, что мы можем использовать 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 ожидает как минимум два параметра.
Других решений пока нет …