Codeigniter constructors. What is the difference?

后端 未结 4 1133
轻奢々
轻奢々 2021-02-09 18:03

I see two types of contructors in CI. For instance...

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


        
相关标签:
4条回答
  • 2021-02-09 18:26

    php 5 has changed the way constructors are called and used and you should use the second option. I think this is not specific to codeigniter and general to php5

    0 讨论(0)
  • 2021-02-09 18:31

    If you are using Codeigniter 2+ (which you should be)... The second option will not work, as it uses the PHP4 style constructor calls.

    Actually, the second option wouldn't work anyway because the php4 constructor call needs to match the class you're extending...

    So yeah, use the first one. It uses PHP5 style constructor calls.

    For more information on PHP5 constructors

    0 讨论(0)
  • 2021-02-09 18:33

    Using a function with the name __construct() is the way constructors are written in PHP 5.

    Using a function that has the same name as the class is the way constructors were written in PHP 4 (and, for compatibility reasons, those still work in PHP 5 -- even if you should prefer __construct())


    As a reference, take a look at Constructors and Destructors -- quoting a portion of it :

    For backwards compatibility, if PHP 5 cannot find a __construct() function for a given class, it will search for the old-style constructor function, by the name of the class.

    0 讨论(0)
  • It looks like the first one is a php 5 implementation and second one is a php 4 implementation.

    0 讨论(0)
提交回复
热议问题