【发布时间】:2012-01-30 22:58:54
【问题描述】:
在 Child 类中,我需要访问父属性“$this->lang”并将其用于其他属性,然后再次调用父构造函数,例如:
abstract class mySuperClass {
protected $lang;
public function __construct($arg1=null, $arg2=null, $arg3=null) {
$this->lang = "US";
}
}
class myChild extends mySuperClass {
public function __construct($arg1=null, $arg2=null, $arg3=null) {
$new_arg1 = $this->lang; // HERE WE ARE STRUGGLYING ...
echo "<br/>step 1) ". get_class(). " : lang= $new_arg1 "; // returns "" where I would need "US"
parent::__construct($new_arg1 , $arg2, $arg3) ;
echo "<br/>step 2) ". get_class(). " : lang= $this->lang"; // returns "US"
}
}
$obj = new myChild("foo1", "foo2", "foo3") ;
这看起来不可能/不允许,因为在我们试图调用父属性 $this->lang 的这个阶段,父类没有被实例化。这似乎合乎逻辑。
所以问题是:
有没有办法通过构造函数覆盖访问子类中的父属性,如图所示?
【问题讨论】:
标签: php oop class inheritance properties