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

Cyb*_*kie 6 php codeigniter

我在CI中看到两种类型的结构.例如...

class Blog extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }
}
Run Code Online (Sandbox Code Playgroud)

class Blog extends CI_Controller
{
       function Blog()
       {
                parent::Controller();
       }
}
Run Code Online (Sandbox Code Playgroud)

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

jon*_*ohn 6

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

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

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

有关PHP5构造函数的更多信息


Pas*_*TIN 5

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

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


作为参考,请看一下构造函数和析构函数 - 引用它的一部分:

为了向后兼容,如果PHP 5找不到__construct()给定类的函数,它将按类的名称搜索旧式构造函数.

  • 如果您正在运行php5,或者如果没有机会将您的应用程序移植到php4,您应该始终使用`__construct()`. (2认同)