Возникла проблема, к сожалению не знаю как её точно сформулировать, поэтому буду благодарен даже ссылке на поиск. Итак, есть родительский класс Parent, также есть два или больше класса которые должны расширять функционал класса Parent. Проблема в том что объявляя новые классы получаю только результаты работы функций последнего и родителя, а хотелось бы чтобы были функции родителя Parent и результаты работы функций всех дочерних классов. Код (Text): <?php class Parents{ function title(){ echo "Parent title<br>"; } function second_func(){ echo "Second func<br>"; } } class Child1 extends Parents{ function title(){ echo "New title<br>"; } } class Child2 extends Parents{ function second_func(){ echo "New second func<br>"; } } $test = new Parents; $test = new Child1; $test = new Child2; $test->title(); $test->second_func(); ?> Т.е. на выходе хотел бы увидеть New title результатом работы $test->title(). Т.е. как уже писал все функции родителя + результаты замещения функциями из дочерних классов. Объяснение наверное получилось бредовое, но как смог -)
http://www.php.net/manual/en/language.oop5.abstract.php http://www.php.net/manual/en/language.o ... rfaces.php[/php]
действительно нихрена непонятно. но может быть топикстартер имел в виду что-то вроде Декоратора или Адаптера? необязательно наследовать чтобы расширить. можно сделать "оболочку", а в ней обращаться к базовому объекту и/или другим оболочкам.
Есть базовый класс core который допустим хранит title страницы (Parent title) в функции core->title() и хранит какую-то вторую функцию second_func(). Есть отдельный файл seo.php. В этом файле есть класс Child1 который должен заменить результат работы функции title из core->title своим значением. Допустим более качественным тайтлом для страницы. Есть ещё один файл child2.php у котором есть класс Child2 который должен заменить вторую функцию (second_func() )из самого первого файла. Когда подключаю оба файла то получаю изменение работы только функции second_func() которую менял второй (последний) файл, а вот работа title() отдаёт результат из базового класса, а не из seo.php.