За последние 24 часа нас посетили 60984 программиста и 1744 робота. Сейчас ищут 910 программистов ...

Переопределенные функции

Тема в разделе "PHP для новичков", создана пользователем Golovastik, 23 ноя 2010.

  1. Golovastik

    Golovastik Активный пользователь

    С нами с:
    14 июл 2010
    Сообщения:
    193
    Симпатии:
    0
    Есть такое код:
    Код (Text):
    1.  
    2. <?php
    3. class A {
    4.      function example() {
    5.          echo "Это первоначальная функция A::example().<br>";
    6.      }
    7. }
    8.  
    9. class B extends A {
    10.      function example() {
    11.          echo "Это переопределенная функция B::example().<br>";
    12.          A::example();
    13.      }
    14. }
    15.  
    16.  
    17. A::example();
    18.  
    19. // Создаем объект класса B.
    20. $b = new B;
    21.  
    22. $b->example();
    23. ?>
    Здесь создан класс А и его наследник класс B, в классе А объявлен метод с названием example и в классе B такой же метод объявлен.

    Когда я написал так: A::example();
    Я просто через глобальную область видимости к классу вызывал ег о метод, это вроде понятно,но после вот этого:
    $b->example();
    Вызывался метод из класса-потомка, а потом вызвался метод класса родителя после него, почему это так?
    Почему после этого $b->example();выводится 2 раза, а не один класса-потомка?
     
  2. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Всё правильно выводится, аномалий не замечено
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дык ты ж сам ее вписал =) на 11 строке

    PHP:
    1. <?php
    2. class A {
    3.      function example() {
    4.          echo "Это первоначальная функция A::example().<br>";
    5.      }
    6. }
    7.  
    8. class B extends A {
    9.      function example() {
    10.          echo "Это переопределенная функция B::example().<br>";
    11.          A::example();
    12.      }
    13. }
    14.  
    15.  
    16. A::example();
    17.  
    18. // Создаем объект класса B.
    19. $b = new B;
    20.  
    21. $b->example();
    22. ?>
     
  4. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    У меня вообще сложилось ощущение что автор периодически троллит
     
  5. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    <?=RPG?>
    У него каждая тема такая. А тут ооп начался, беда.... беда грядет..
     
  6. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
  7. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    <?=RPG?>
    блок дроссельной заслонки?
    мая непанимать данной аббревиатуры.
     
  8. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Большое домашнее задание