PHP Warning: Invalid argument supplied for foreach()

Тема в разделе "Как сделать...", создана пользователем Vaterland, 18 сен 2014.

Статус темы:
Закрыта.
  1. Vaterland

    Vaterland Создатель

    Регистр.:
    7 июн 2014
    Сообщения:
    23
    Симпатии:
    14
    На php 5.5.9 не хочет работать код.

    Строка foreach ($wishlists as $wishlist) и ошибка сама: PHP Warning: Invalid argument supplied for foreach()

    То есть нет переменной?

    Вот сам код:

    PHP:

            $wishlists 
    WishList::getByIdCustomer((int)$customer->id);
            if (!
    count($wishlists))
                
    $this->html .= $customer->lastname.' '.$customer->firstname.' '.$this->l('No wishlist.');
            else
            {
                
    $this->html .= '<form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post" id="listing">';

                
    $id_wishlist = (int)Tools::getValue('id_wishlist');
                if (!
    $id_wishlist)
                    
    $id_wishlist $wishlists[0]['id_wishlist'];

                
    $this->html .= '<span>'.$this->l('Wishlist').': </span> <select name="id_wishlist" onchange="$(\'#listing\').submit();">';
                foreach (
    $wishlists as $wishlist)
                {
                    
    $this->html .= '<option value="'.(int)$wishlist['id_wishlist'].'"';
                    if (
    $wishlist['id_wishlist'] == $id_wishlist)
                    {
                        
    $this->html .= ' selected="selected"';
                        
    $counter $wishlist['counter'];
                    }
                    
    $this->html .= '>'.htmlentities($wishlist['name'], ENT_COMPAT'UTF-8').'</option>';
                }
                
    $this->html .= '</select>';

    Помогите исправить, спасибо!
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.450
    Симпатии:
    1.244
    count не даёт точной проверки на тип переменной, замени if (!count($wishlists)) на
    PHP:
    if (!is_array($wishlists) OR !count($wishlists))
     
    Vaterland нравится это.
  3. Vaterland

    Vaterland Создатель

    Регистр.:
    7 июн 2014
    Сообщения:
    23
    Симпатии:
    14
    Блин, спасибо большое тебе за помощь!
     
Статус темы:
Закрыта.