PHP継承構造方法、メンバー変数
1294 ワード
自分がこれらの概念に対してずっとあいまいであることを発見して、特に以下のように総括します:
1.子クラスに構築メソッドがない場合、親クラスの構築メソッドがデフォルトで呼び出されます.
2.子クラスに構築メソッドがある場合、親クラスの構築メソッドは呼び出されず、親クラスのメンバー変数が上書きされます.呼び出す場合はparent::_construct();
3.親のメンバー変数とメソッドは、デフォルトではクラスに継承されます.
eg:
1.子クラスに構築メソッドがない場合、親クラスの構築メソッドがデフォルトで呼び出されます.
2.子クラスに構築メソッドがある場合、親クラスの構築メソッドは呼び出されず、親クラスのメンバー変数が上書きされます.呼び出す場合はparent::_construct();
3.親のメンバー変数とメソッドは、デフォルトではクラスに継承されます.
eg:
class A{
public $a = array();
public $b = '';
public function __construct(){
$this->a = array('a', 'b', 'c');
$this->b = 'bobby';
echo 'construct' . "
";
}
public function get(){
print_r($this->a);
}
}
class B extends A{
public function __construct(){
parent::__construct();
$this->c = 'CC';
}
public function get(){
array_push($this->a, 'd');
print_r($this->a);
echo $this->c;
}
public function getb(){
echo parent::$this->b;
}
}
//$a = new A();
$b = new B();
$b->get();
$b->getb();