function __construct()

Тема в разделе "PHP", создана пользователем serjinio, 7 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    В каких случаях ее целесообразно применять ,а в каких достаточно использовать просто function abc()
    Если можно объясните " на пальцах"
     
  2. lobzik

    lobzik

    Регистр.:
    8 авг 2006
    Сообщения:
    311
    Симпатии:
    49
    Если при создании объекта необходимо выполнить какие-либо действия, то тебе нужен конструктор. В любых других случаях конструктор не нужен =)
    UPD
    offtopic
    Вспомнил сообщение ТС в одной ветке:
    Вот такие "похапе программисты" рассуждают об ООП :be:
     
  3. kud

    kud Постоялец

    Регистр.:
    18 фев 2009
    Сообщения:
    89
    Симпатии:
    11
    Насколько я знаю, __construct() как конструктор класса работает только в php начиная с 5й версии ... В версиях php ниже нужно использовать function имя_класса() как конструктор.
    Разницы по сути никакой, только дело в совместимости ..
     
  4. legendar

    legendar Писатель

    Регистр.:
    9 дек 2008
    Сообщения:
    9
    Симпатии:
    1
    да. kud написал верно. осталось добавить что в php5 можно и 'function abc()' использовать
     
  5. wukill

    wukill Создатель

    Регистр.:
    26 апр 2009
    Сообщения:
    10
    Симпатии:
    0
    если она будет первой в классе, то пхп4 примет ее как конструктор...
     
  6. lobzik

    lobzik

    Регистр.:
    8 авг 2006
    Сообщения:
    311
    Симпатии:
    49
    Вы о чем вообще говорите?

    В пхп 4 функция __construct() не будет автоматически вызываться при создании объекта, и не важно какой по счету она будет в классе (это вообще бред про порядок в классе). В пхп4 конструкторы имеют такое же имя как и класс.

    В пхп5 если есть конструктор (метод __construct()) выполниться он, если его нету то метод с именем класса (для совместимости оставили). Если есть и конструктор (__construct()) и метод с именем класса, то выполнится только __construct.
     
  7. AGONOM

    AGONOM Создатель

    Регистр.:
    17 апр 2009
    Сообщения:
    10
    Симпатии:
    3
    В некоторых скриптах (где-то в CakePHP) можно втретить и такое:
    PHP:
    class abc {
    ...
    function 
    __construct() {
        
    //сделать что-то
    }

    function 
    abc() {
        
    $this->__construct();
    }
    ...
    }
     
  8. lobzik

    lobzik

    Регистр.:
    8 авг 2006
    Сообщения:
    311
    Симпатии:
    49
    Это для того, что бы сохранить совместимость с пхп4. Пхп4 умер, и трогать его не надо. Всех хостеров, которые не поставили 5ый пых - в топку.
     
Статус темы:
Закрыта.