【发布时间】:2014-03-28 20:31:38
【问题描述】:
也许你知道一些从子类方法覆盖类属性的“正确方法”
<?php
class A {
public $option;
public function __construct() {
$this->option = array(1,2,3);
}
public function bb() {
$obj = new B;
$obj->aa();
print_r($this->option);die;
}
}
class B extends A {
public function __construct() {
parent::__construct();
}
public function aa() {
$this->option[] = 4;
//print_r($this->option);die;
}
}
$obj3 = new A;
$obj3->bb();
?>
从方法aa()返回不带元素的Array ( [0] => 1 [1] => 2 [2] => 3 )
是否可以从子类覆盖父类属性?
【问题讨论】:
-
是的。不可能调用 $obj->aa();来自 $obj->bb();因为 $obj->aa();在子类中定义。
-
好的,如何将覆盖属性从子类转移到父类?只在
aa()中创建返回数组并像这样写$this->option = array_merge($obj->aa(), $this->option)?
标签: php class oop overriding