ошибка foreach on null throws с момента перехода на Symfony 3 - PullRequest
0 голосов
/ 26 февраля 2019

Я перенес свое веб-приложение с Symfony 2 на 3. С тех пор всякий раз, когда цикл foreach выполняется с нулевым значением, выдается ошибка («Неверный аргумент»).

Пример:

$myResults = null;

foreach ($myResults as $item) {
   // do something
}

Как мне добиться этого, как и раньше, без ошибок?

1 Ответ

0 голосов
/ 26 февраля 2019

Это ошибка, возникающая при обновлении до более новой версии PHP (7.1 +).

Это можно проверить, выполнив пример кода в интерактивной оболочке php без загрузки какого-либо кода Symfony:

$ php -a
Interactive shell

php > $var = null;
php > foreach ($var as $v) {}
PHP Warning:  Invalid argument supplied for foreach() in php shell code on line 1

Вы также можете проверить это на 3v4l.org

Чтобы исправить это, вы должны проверить нулевое значение перед циклом или (временно) вернуться к старому(не поддерживается!) версия PHP.В зависимости от того, насколько хорошо напечатан ваш код, существуют некоторые инструменты статического анализа кода, которые помогут вам найти циклы, которые вам нужно будет защитить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...