За последние 24 часа нас посетил 18701 программист и 1603 робота. Сейчас ищут 913 программистов ...

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

Тема в разделе "Прочие вопросы по PHP", создана пользователем Rumato, 10 авг 2011.

  1. Rumato

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

    С нами с:
    26 дек 2010
    Сообщения:
    77
    Симпатии:
    0
    Здравствуйте, у меня такой вопрос: есть класс в нём определён метод-функция, есть дочерний класс, в котором переопределена эта функция, мне нужно в одних случаях вызывать первоначальную функцию, а в других переопределённую, как это реализовать?

    Заранеее спасибо за помощь!
     
  2. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    вызвать из дочернего класса функцию родительского parent::func_name($args)
    вызывать из потребителей классов - создать объект родительского класса и дочернего и использовать в зависимости от условий.
    а вообще не хватает данных.
     
  3. Rumato

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

    С нами с:
    26 дек 2010
    Сообщения:
    77
    Симпатии:
    0
    есть сласс:
    Код (Text):
    1. class one {
    2. function ones(){
    3. }
    4. }
    затем
    Код (Text):
    1.  
    2. class two extends one {
    3. function ones(){
    4. }
    5. }
    Затем мне нужно вызвать в третьем классе обе функции, но сначала от родительского класс, а затем от дочернего
     
  4. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    по такому сценарию похоже на неправильную реализацию задачи. не должно быть такого в объектах.
    если бы всегда надо было вызывать в таком порядке, то просто parent::func_name($args) , а если попеременно - то это извращение.

    есть ещё вариант - напиши на реальном примере что нужно, может тогда будет совет.
     
  5. Rumato

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

    С нами с:
    26 дек 2010
    Сообщения:
    77
    Симпатии:
    0
    Мне нужно вызывать, функцию, определённую в родительском классе и в дочернем в одном месте в зависимости от того какое условие выполняется, т.е. может вызваться как один, так и другой вариант. Вот только как это реализовать? И вообще это можно сделать?
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    нельзя. ты выбрал неправильную дорогу

    только в самом методе дочернего класса через parent:: может быть тебе стоит там проверять свои условия? или это по сути разные методы и не надо перекрывать. используй мозг
     
  7. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    и композицию вместо наследования :)