Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с циклом, вернее с его НЕвызовом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Apple68
Отправлено: 18 Января, 2014 - 20:53:28
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




Добрый вечер. Не знал как правильно сформулировать проблему, но суть такова. В цикл передается массив, причем не известно, пустой массив или нет. Если массив пустой, цикл выводит мне ошибку. Так вот, нужно сделать проверку на содержание массива, чтобы я смог вывести пользователю ошибку.
 
 Top
teddy
Отправлено: 18 Января, 2014 - 21:02:29
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Apple68 пишет:
Если массив пустой, цикл выводит мне ошибку

В таком случае просто не нужно начинать пробег по массиву через цикл

Вот примерчик:
PHP:
скопировать код в буфер обмена
  1. $arr = array();//он у нас пустой
  2. if(count($arr) == 0){//count это функция, которая возвращает количество элементов в массиве
  3.     echo 'Количество элементов массива $arr равно нулю. Поэтому цикл не может стартовать';
  4. }else{
  5.     foreach($arr as $key=>$value){
  6.         echo $key.' = '.$value.'<br >';
  7.     }
  8. }
 
 Top
Apple68
Отправлено: 18 Января, 2014 - 21:19:03
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




teddy пишет:
Apple68 пишет:
Если массив пустой, цикл выводит мне ошибку

В таком случае просто не нужно начинать пробег по массиву через цикл

Вот примерчик:
PHP:
скопировать код в буфер обмена
  1. $arr = array();//он у нас пустой
  2. if(count($arr) == 0){//count это функция, которая возвращает количество элементов в массиве
  3.     echo 'Количество элементов массива $arr равно нулю. Поэтому цикл не может стартовать';
  4. }else{
  5.     foreach($arr as $key=>$value){
  6.         echo $key.' = '.$value.'<br >';
  7.     }
  8. }

Спасибо
 
 Top
DelphinPRO
Отправлено: 18 Января, 2014 - 23:04:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




че вы гоните? Улыбка

пустой массив прекрасно подставляет в foreach без ошибок. Просто не производится ни одной итерации.

PHP:
скопировать код в буфер обмена
  1. $arr = array();
  2. foreach($arr as $item){} // никаких ошибок


(Добавление)

Вам может быть не массив передается, а что-то типа FALSE или NULL. Тогда будет предупреждение. Тут стоит проверять. Достаточно нестрого проверки

PHP:
скопировать код в буфер обмена
  1. if ($arr) {
  2.     foreach($arr as $item){}
  3. } else {
  4.     echo 'Empty';
  5. }


или так (надежнее, когда не знаешь какие данные придут)

PHP:
скопировать код в буфер обмена
  1. if (is_array($arr) && $arr) {
  2.     foreach($arr as $item){}
  3. } else {
  4.     echo 'Empty';
  5. }

(Отредактировано автором: 18 Января, 2014 - 23:09:38)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
3d_killer
Отправлено: 18 Января, 2014 - 23:20:05
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Согласен с DelphinPRO
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB