Столкнулся с проблемой. Шаманство.

Духовность™

Продвинутый новичок
Столкнулся с проблемой. Шаманство.

есть объект-хранилище $this->data.
смотрим слепок: http://phpclub.ru/paste/index.php?show=2276
Обратите внимание на элемент массива group_user содержащий пустой массив как единственное свойство

есть функция __get():

PHP:
    public function __get($key)
    {
        if ($key == 'group_user') {
            print_r($this->data->group_user);  // выводит содержимое $this->data->group_user !!!!!!!!!!!!!!
        }

        return isset($this->data[$key]) ? $this->data[$key] : null; // возвращает nulll
    }
если вместо

PHP:
return isset($this->data[$key]) ? $this->data[$key] : null;
написать

PHP:
return $this->data[$key];
то возвращается что надо - объект...

ArrayAccessImpl - это вот такой класс http://phpclub.ru/paste/index.php?show=2277
 

Духовность™

Продвинутый новичок
fixxxer
ТАК!!

я код этого класса барл из сети и изменял, соответственно как-то забыл про offsetExists.. дело было в этом коде:

PHP:
       if (isset($this->data[$index]))
        {
            if ($this->data[$index] instanceof ArrayAccessImpl)
            {
                return (boolean) (count($this->data[$index]->data) > 0);
            }
            else
            {
                return true;
            }
        }
        else
        {
            return false;
        }
он возвращаел true если элемент массива был не пустым.. странно, для чего так сделано... ведь пустой массив это же не !isset


Спасибо!!
 
Сверху