I see two types of contructors in CI. For instance...
class Blog extends CI_Controller
{
function __construct()
{
parent::__construct();
}
}
and
class Blog extends CI_Controller
{
function Blog()
{
parent::Controller();
}
}
What is the difference between them? I'm not sure which to choose.
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
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.
It looks like the first one is a php 5 implementation and second one is a php 4 implementation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With