__construct()
クラスのコンストラクターメソッドです。そこから新しいオブジェクトインスタンスを宣言すると実行されます。ただし、クラスが独自のコンストラクターを実装した場合__construct()
、PHPはそれ自体のコンストラクターのみを実行し、その親のコンストラクターは実行しません。例えば:
<?php
class A {
public function __construct() {
echo "run A's constructor\n";
}
}
class B extends A {
public function __construct() {
echo "run B's constructor\n";
}
}
// only B's constructor is invoked
// show "run B's constructor\n" only
$obj = new B();
?>
この場合、$ objが宣言されたときにクラスAのコンストラクターを実行する必要がある場合は、次を使用する必要がありますparent::__construct()
。
<?php
class A {
public function __construct() {
echo "run A's constructor\n";
}
}
class B extends A {
public function __construct() {
parent::__construct();
echo "run B's constructor\n";
}
}
// both constructors of A and B are invoked
// 1. show "run A's constructor\n"
// 2. show "run B's constructor\n"
$obj = new B();
?>
CodeIgniterの場合、その行はCI_Controllerでコンストラクターを実行します。そのコンストラクターメソッドは、何らかの方法でコントローラーコードを支援するはずです。そして、あなたはそれがあなたのためにすべてをすることを望むでしょう。