PHP 継承コンストラクター、メンバー変数
私はこれらの概念について常に漠然としてきたことに気づいたので、次のように要約します:
?
1. サブクラスにコンストラクターがない場合、デフォルトで親クラスのコンストラクターが呼び出されます。
?2. サブクラスにコンストラクターがある場合、親クラスのコンストラクターは呼び出されず、親クラスのメンバー変数を呼び出したい場合は、parent::__construct(); を使用します。
?
3. 親クラスのメンバー変数とメソッドはデフォルトでサブクラスに継承されます
?
例:
class A{ public $a = array(); public $b = ''; public function __construct(){ $this->a = array('a', 'b', 'c'); $this->b = 'bobby'; echo 'construct' . "\n"; } 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();