Я в отчаянии... <?php class A { function example() { echo "Это первоначальная функция A::example().<br>"; } } class B extends A { function example() { echo "Это переопределенная функция B::example().<br>"; A::example(); Как можно присвоить переменной $tut= A::example();????? } } A::example(); $b = new B; $b->example(); ?> Как можно присвоить переменной родительский метод внутри дочернего класса $tut= A::example();? или хоть где посмотреть доходчиво?
блин, ну ты мануал-то прочитал?)))) смотри, всё просто (если я задачу твою понял). делаем класс А: Код (PHP): class A { function example() { // тут базовый метод объявляется. echo "Это первоначальная функция A::example().<br>"; } } наследуем классом Б класс А: Код (PHP): class B extends A { function example() { // тут идет переопределение базового метода. однако инкапсуляция в ООП позволяет потомку обращаться к доступным методам и свойствам родительского класса. echo "Это переопределенная функция B::example().<br>"; parent::example(); // обращаемся к родительскому методу } } выполняем: Код (PHP): $b=new B(); $b->example(); // должен вывести сначала Б а потом А ошибки в твоем коде: тут ты обращаешься к статическому методу класса А, но этот метод не статический и ты должен получать соответствующую ошибку и внутри переопределенного метода ты совершаешь ту же ошибку.
VLK это не новогоднее чудо)))) он просто еще не успел признаков неадекватности проявить))))) Добавлено спустя 45 секунд: ну и я же пожелал старичкам терпения в общении с новичками)))
Я наверно не верно спрашиваю. public function не помогает.А почему если писать return то ничего, а если echo то печатает результат, но мне надо во втором классе доработать полученный результат первой функции.
ну ты тогда не эхо делай в методе а ретёрн. а уже выше (в нестинге кода) делай эхо Код (PHP): class A{function e(){return 'AAA';}} class B extends A {funciton e(){return 'BBB'.parent::e();} $a = new A(); echo $a->e();// AAA $b = new B(); echo $b->e(); // BBBAAA @2015-0101-1422 FIX поправил пропущенные echo
Вообще, такой код вроде тоже корректно работает: Код (PHP): <?php class A {function ff(){echo "A";} } class B extends A {function ff() {echo "B";}} class C extends B {function ff() {A::ff(); echo "c";}} $c = new C; $c->ff(); ?>
mkramer, да, работает. но я отталкивался от того что он в main() писал а не в переопределенном методе.