Codeigniter构造函数。有什么不同?

时间:2011-03-18 19:52:21

标签: php codeigniter

我在CI中看到两种类型的构造函数。例如......

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

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

他们之间有什么区别?我不知道该选哪个。

4 个答案:

答案 0 :(得分:6)

如果您正在使用Codeigniter 2+(您应该使用它)......第二个选项将不起作用,因为它使用PHP4样式的构造函数调用。

实际上,第二个选项无论如何都行不通,因为php4构造函数调用需要匹配你正在扩展的类......

所以是的,使用第一个。它使用PHP5样式的构造函数调用。

more information on PHP5 constructors

答案 1 :(得分:5)

使用名称为__construct()的函数是构造函数在PHP 5中编写的方式。

使用与类名相同的函数是构造函数在PHP 4 中编写的方式(并且出于兼容性原因,那些仍在PHP 5中工作 - 即使您更喜欢{{1} })


作为参考,请查看Constructors and Destructors - 引用其中的一部分

  

为了向后兼容,如果是PHP 5   找不到__construct()功能   对于给定的类,它将搜索   旧式构造函数,由   这个班的名字。

答案 2 :(得分:1)

看起来第一个是php 5实现,第二个是php 4实现。

答案 3 :(得分:1)

php 5改变了构造函数的调用和使用方式,你应该使用第二个选项。 我认为这不是特定于codeigniter和一般的php5