За последние 24 часа нас посетили 50911 программистов и 1738 роботов. Сейчас ищут 897 программистов ...

Функции за пределами классами

Тема в разделе "Прочие вопросы по PHP", создана пользователем kuraga, 25 фев 2008.

  1. kuraga

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

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Можно ли создать метод, объявив его вне class {} ?

    PHP:
    1.  
    2. class A {
    3.     function a() { return "A::a"; }
    4. }
    5.  
    6. function b() { return "A::b"; } // эта функция должна быть членом класса A
    7.  
    Или хотя бы указать, что функция есть, но определить ее в другом месте (файле)?

    PHP:
    1.  
    2. class A {
    3.     function a() { return "A::a"; }
    4.     function b();
    5. }
    6.  
    7. function b() { return "A::b"; } // эта функция должна быть членом класса A
    8.  
    (abstract не подходит, потомки мне не нужны)
     
  2. Anonymous

    Anonymous Guest

    Нет.
     
  3. kuraga

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

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    А первый вариант?
     
  4. Anonymous

    Anonymous Guest

    Нет.

    Для именно этого и нужны абстрактные классы и интерфейсы.
     
  5. kuraga

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

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Да, но мне нужно объявить класс, а не его потомков...

    Спасибо. А жаль...
     
  6. Anonymous

    Anonymous Guest

    Ничего не понял. По моему, вы подходите к проблеме со стороны... хм... спины, да.
     
  7. kuraga

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

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    У меня есть класс Module (я пишу CMS). В нем есть функции. Их условно 50. От такого количества файл распузыривается до сотен строк. Хотелось бы разбить его на части... (Это только один из примеров.)
     
  8. Anonymous

    Anonymous Guest

    И чем в этой ситуации не устраивает наследование?
     
  9. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    kuraga
    Разбей класс на два и унаследуй второй от первого. Соответственно каждый класс в своем файле.
     
  10. Clone

    Clone Guest

    Многовато для одного-то класса. Пересмотри логику и вынеси методов 40 в другие классы.
     
  11. Amian

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

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Обычно такие вопросы появляются из-за того что люди не умеют грамотно подходить к проблемме. Давно пора уже переименовать ООП из "объектно ориентированного программирования" в "объектно ориентированное проектирование" :)

    Горбунов Олег,Dagdamor
    Толку от советов "наследуй/сделай методы статичными/бла бла бла" всё равно для человека не будет никакого до тех пор пока он не начнёт задумываться не о конкретном шаге , а о связи всех частей системы как единого целого.
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда