Титла: Обект в клас Публикувано от: koleto в Sep 19, 2009, 00:04 Здравейте. Имам едно питане. В PHP може ли да се направи така, че методите и свойствата на даден обект да бъдат използвани във всички методи на клас, различен от родителския за обекта. Имам предвид това, че искам да напиша следното в декларацията на променливите - private $object = New Object(); но след като го напиша ми дава грешка. Искам да мога да ползвам даден обект във всички методи на класа. Мисля че е грешно във всеки един метод да декларирам обекта на ново. Или не съм прав? Първо ми дойде идея, в конструктора на класа да направя някаква магия който да декларират обекта, но не става, защото те се наследяват и конструктора не може да бъде предефиниран. След това ми дойде на ум, че мога да го направя със статична свойства на класа Object и да мога да си ги викам спокойно Object::method, примерно. Но така ми се струва, че бягам от проблема. Дано да съм го обяснил добре.
Титла: Re: Обект в клас Публикувано от: VladSun в Sep 19, 2009, 00:39 Нещо не те разбрах...
Код
Какво не му е наред на това според теб? Титла: Re: Обект в клас Публикувано от: koleto в Sep 19, 2009, 01:09 Да си говорим в код
Код
Трябва да повтарям декларацията на обекта във всеки метод ли? Титла: Re: Обект в клас Публикувано от: VladSun в Sep 19, 2009, 01:12 Какво ти пречи да промениш конструктора на Controller?
Или да създадеш наследяващ клас MyBaseController, чийто конструктор да вика родителския Controller конструктор и да създава нов обект Object към негово си property? След това всички MyController ще наследяват MyBaseController. Титла: Re: Обект в клас Публикувано от: VladSun в Sep 19, 2009, 01:16 Това не го разбрах:
Цитат //Родителския Controller си има конструктор, затова казвам, че е не може да се предефинира Оябсни :) Титла: Re: Обект в клас Публикувано от: koleto в Sep 19, 2009, 01:19 Имаш предвид:
Код
Това не го разбрах: До сега си мислех, че като напиша на дъщерния клас __construct(); и стария конструктор се изтрива и започва да действа новия. Ето това с parent::__construct(); не го знаех. Титла: Re: Обект в клас Публикувано от: VladSun в Sep 19, 2009, 01:25 :)
Това важи не само за конструкторите, а и за всички методи, които предефинираш. Титла: Re: Обект в клас Публикувано от: koleto в Sep 19, 2009, 01:29 Благодаря много за помощта :)
|