Codeigniter конструкторы.В чем разница? - PullRequest
6 голосов
/ 18 марта 2011

Я вижу два типа конструкторов в CI.Например ...

class Blog extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }
}

и

class Blog extends CI_Controller
{
       function Blog()
       {
                parent::Controller();
       }
}

В чем разница между ними?Я не уверен, что выбрать.

Ответы [ 4 ]

6 голосов
/ 18 марта 2011

Если вы используете Codeigniter 2+ (которым вы должны быть) ... Второй вариант не будет работать, так как он использует вызовы конструктора в стиле PHP4.

На самом деле второй вариант не сработает, потому что вызов конструктора php4 должен соответствовать классу, который вы расширяете ...

Так что да, используйте первый. Он использует вызовы конструктора в стиле PHP5.

Для больше информации о конструкторах PHP5

5 голосов
/ 18 марта 2011

Использование функции с именем __construct() - это способ написания конструкторов в PHP 5.

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


Для справки взгляните на Конструкторы и деструкторы - , цитируя его часть :

Для обратной совместимости, если PHP 5 не может найти функцию __construct() для данного класса, он будет искать функция конструктора старого стиля, Наименование класса.

1 голос
/ 04 июня 2012

php 5 изменил способ вызова и использования конструкторов, и вы должны использовать второй вариант. Я думаю, что это не специфично для codeigniter и вообще для php5

1 голос
/ 18 марта 2011

Похоже, что первая реализация php 5, а вторая реализация php 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...