как прятать каждый раз неправильно? - PullRequest
0 голосов
/ 12 июля 2011

я хочу прятаться каждый раз неправильно. Например ошибка:

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\ebook\ara.php on line 65

как я могу спрятаться?

Ответы [ 9 ]

6 голосов
/ 12 июля 2011

Никогда не скрывайте ошибки.Ошибки означают, что что-то не так, вы должны попытаться исправить основную проблему, а не скрывать ее

Кроме того, нам нужно увидеть некоторый код, чтобы мы знали, что вы передаете в foreach.Это будет массив

3 голосов
/ 12 июля 2011

Есть несколько способов:

1) Сначала проверьте переменную

  if(isset($rows) && is_array($rows))
  {
      foreach($rows as $row) { ... }
  } 

2) Используйте оператор подавления ошибок (не делайте этого, пожалуйста ...)

  foreach(@$rows as $row) { ... }\

3) Отключите все ошибки (лучше этого не делать, иначе вы пожалеете!)

* * 1010
2 голосов
/ 12 июля 2011

убедитесь, что foreach () имеет количество

if (count($array))
{
   foreach($array as $value)
   {
      //do stuff
   }
}
2 голосов
/ 12 июля 2011

Как сказал BoltClock, вы обязательно должны решить эту проблему.Если вы этого не сделаете, это может привести к серьезным проблемам позже.

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

Вы можете поставить @ перед функцией.

Вы можете изменить display_errors.

Вы можете изменить error_reporting.

2 голосов
/ 12 июля 2011

Вы можете установить для сообщения об ошибке значение false в вашем php.ini, но это не рекомендуется. Похоже, вы должны исправить ошибку, прежде чем пытаться понять, как ее скрыть.

error_reporting(0);

Отчет об ошибках PHP

2 голосов
/ 12 июля 2011

Убедитесь, что переменная, которую вы передаете ей, является массивом / существует.

Пожалуйста, напишите код, и мы можем помочь вам в дальнейшем.

И, как говорят здесь другие, вы не хотите скрывать ошибки ... Они приведут к поломке вашего сценария, это плохая практика, и это вас никуда не приведет.

Однако вы можете подавить ошибки, поставив символ @ перед функцией.

1 голос
/ 12 июля 2011
// Turn off all error reporting
error_reporting(0);
0 голосов
/ 20 февраля 2013

Вы не можете использовать символ @ для foreach

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

0 голосов
/ 12 июля 2011

Поместите символ @ перед строкой кода, которая вызывает ошибку. Символ @ заставляет PHP подавлять ошибки, возникающие в строке. Обычно это не рекомендуется, если у вас нет веских причин для этого. Лучше исправлять ошибки.

...