Доброе время суток, друзья. Пишется админка для личного пользования. Хотелось бы вот такой командой Код (Text): $site->page->news->getAll(); с помощью метода Код (Text): function getAll(){ $st = $this->db->query('SELECT news.id, news.name, news.text, news.image_id, news.alias, news.date, image.name, image.path FROM news LEFT JOIN image ON image.id = news.image_id WHERE news.deleted = 0 AND news.display = 1'. ' ORDER BY news.date DESC'); $st->setFetchMode(PDO::FETCH_CLASS , 'news'); $temp; while($temp[] = $st->fetch()){ } $this = $temp; } получать в Код (Text): $site->page->news массив из объектов новостей. Последняя строчка в методе вызывает ошибку Код (Text): $this = $temp; Понимаю, что $this указывает на конкретный экземпляр, но думал что в php динамическая типизация настолько динамическая, что позволит заменить $this на массив таких же объектов, но не получается. Как вариант, конечно, можно переписать классы, чтобы новости получались так: Код (Text): $site->page->getNews(); и поместить новости в $this->news[], но мне хочется реализовать именно тот, что был описан выше. Спасибо. Апдейт:орфография
Код (Text): $this = $temp; Код ещё обрабатывается, изнутри взорвать текущий блок не получится, нужно сначала выйти. Пусть функция getAll() возвращает массив, тогда можно Код (PHP): $tempArr=$site->page->news->getAll(); $site->page->news=$tempArr; Экземпляр класса с функцией getAll() перетрётся массивом. Или попробуйте перегрузку свойств