Joomla 1.5 Для чего нужна функция __construct()

Тема в разделе "Программирование", создана пользователем panas, 25.06.2010.

  1. panas
    Offline

    panas Недавно здесь

    Регистрация:
    22.08.2009
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте. Помогите разобраться, зачем нужна функция _construct()?
    Код (PHP):
    1. function __construct() {
    2.         ...
    3.         parent::__construct();
    4.        ...
    5.     }

    И Зачем вызывать parent::__construct();?
     
  2.  
  3. Offline

    dron79 Недавно здесь

    Регистрация:
    17.05.2010
    Сообщения:
    19
    Симпатии:
    3
    Пол:
    Мужской
    это конструктор для инициализации объекта класса.
    В данном случае для инициализации вызывается конструктор родительского класса.
     
  4. panas
    Offline

    panas Недавно здесь

    Регистрация:
    22.08.2009
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    В принципе я предполагал это. Можете подробнее объяснить зачем это нужно?
     
  5. Offline

    botanist Активист => Cпециалист <=

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    :D Чтоб работало.
     
  6. Offline

    dron79 Недавно здесь

    Регистрация:
    17.05.2010
    Сообщения:
    19
    Симпатии:
    3
    Пол:
    Мужской
    Учите PHP, и тогда сами найдете ответы на многие вопросы. Купите хороший учебник по PHP5 и подробно изучите раздел "классы". Это сильно расширит ваши возможности.
     
  7. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    при описании любого класса используется конструкция
    Код (PHP):
    1. class MyClass
    2. {
    3.   function __counstruct()
    4.   {
    5.      echo "MyClass Complete";
    6.   }
    7.  
    8. // другие функции
    9. }

    при получении экземпляра этого класса
    Код (PHP):
    1. $obj = new MyClass();

    всегда будет выполнятся метод __construct().

    Рекомендую самостоятельно изучить мат-часть.
     
  8. Offline

    Kravcneger Недавно здесь

    Регистрация:
    29.10.2009
    Сообщения:
    28
    Симпатии:
    0
    Пол:
    Мужской
    Зачем нужен конструктор - Глупый вопрос.
    Зачем в конструкторе вызывать родительский конструктор ещё более менее ...

    Дело в том что в родительском классе JController , в конструкторе описаны необходимые действия , без которых невозможно будет создать рабочий экземпляр(объект).
    После того как в классе наследнике мы объявляем метод с похожим названием то происходит переопределение метода , и метод(у порождённого от нового класса объекта) будет работать именно так как мы опишем в новом классе.

    Но в нашем случае необходимо чтобы наш метод(конструктор) вначале произвёл действия базового класса ( к примеру получил значение какой нибудь переменно из запроса или другое...)
    а уж потом делал то что мы напишем в коде.

    class a{
    public $a;
    function __construct(){
    $this->a=5;
    }
    }

    class b extends a{
    function __construct(){
    parent::__construct();
    if($this->a == 5){
    echo 'ура';
    }
    else{
    echo 'не ура';
    }
    }
    }

    Если не вызывать родительский конструктор то будет "не ура".
    Но мы его вызвали поэтому будет "ура".

    Вообще ООП очень интересная штука , учить её(понимать все её концепции) безусловно нужно
     
    Последнее редактирование: 01.07.2010

Поделиться этой страницей

Загрузка...