как избежать вывода foreach ошибка? - PullRequest
7 голосов
/ 05 июня 2011

В этой статье упоминается:

foreach не поддерживает возможность подавления сообщений об ошибках с помощью'@'.

Как избежать ошибки вывода foreach? Я не хочу видеть:

Предупреждение : указан неверный аргумент для foreach ()

Есть ли способ сделать if else суждение?

Ответы [ 4 ]

5 голосов
/ 05 июня 2011

префикс переменной с (массив), как это.

foreach( (array) $array_thats_not_an_array as $key => $value ){
    echo $key . ' ' . $value;
}
5 голосов
/ 05 июня 2011

Перед foreach проверьте, содержит ли переменная массив:

if (is_array($var))
{
   foreach...
}
0 голосов
/ 07 декабря 2018

Я использовал предложение OZ, но получил ошибку в тесте is_array.

Но добавление @ перед именем проверяемого массива сработало.

    if (is_array((@$errors))){
      foreach ($errors as $error): ?>
        <?php echo $error; ?>
        <br/>
      <?php endforeach;
    }

и да, я знаю, что использование @ скудно, НО я не могу получить крошечныйнемного унаследованного кода работает красиво.Я могу потратить еще один час, чтобы исправить это, чтобы обойти «ваш вар не определен», или вставить @ и получить другие вещи, необходимые для очень ALFA-версии, чтобы поделиться с другом завтра.О да и 11 вечера, и мой мозг озадачен!

ATB Mr Grumpy
PS Большое спасибо OZ_ за 95% раствора!

0 голосов
/ 05 июня 2011
if(!empty($array)) {
  foreach($array as $a) {
    // do something
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...