foreach — правильное использование суперглобальных PHP в цикле

Я пытаюсь очистить некоторый код и получаю предупреждение

«Не обращайтесь к массиву Superglobal $ _GET напрямую»

в цикле, который используется для сбора того, что было возвращено.

foreach ($_GET as $name => $value) {
$allinfo.= "_GET = $name : $value<br>";
}

Теперь это приятно и легко делать отдельные записи, так

$token = $_REQUEST['token'];

становится

$token = filter_input(INPUT_REQUEST, 'token');

но я немного застрял на том, как это исправить для петель.

0

Решение

foreach ($_GET as $name => $value) {
$allinfo.= "_GET = $name : " . filter_input(INPUT_GET, $name) . "<br>";
}

ИЛИ ЖЕ

foreach (filter_input_array(INPUT_GET) as $name => $value) {
$allinfo.= "_GET = $name : $value <br>";
}
1

Другие решения

foreach ($_GET as $name => $value) {
$allinfo.= "_GET = $name : " . filter_input(INPUT_GET, $name) . "<br>";
}

Я не знаю, достаточно ли этого для вашего валидатора кода (я думаю, Netbeans). Вы также можете попробовать:

foreach (array_keys($_GET) as $name) {
$allinfo.= "_GET = $name : " . filter_input(INPUT_GET, $name) . "<br>";
}
1