我很确定没办法,但想要检查/确认。
我可以通过函数传递道具,但这需要改变一些我不喜欢的功能。我使用的是PHP 5.3。
例如:
class A{
public function accessProps(){
echo "about to show props
";
// cant access, child::?
var_dump($this->props);
}
}
class B extends A{
//want this accessible in parent class
public $props=array('green','blue','red');
public function sayHello(){
echo 'hello ';
var_dump($this->props);
}
}
$b=new B();
$a=new A();
$b->sayHello();
$a->accessProps();
?>编辑 - 我喜欢反思的想法,但会有点犹豫,只为这种情况添加反思。也许最简单/最简单的方法就是在需要它的类中传递道具,并将它作为构造函数中的可选参数。这样,不需要更改不需要它的类并访问需要它的类。我认为应该这样做。喜欢这个:
class A{
public function __construct($props=null){
if($props){
$this->props=$props;
}
}
}
class B extends A{
public $props=array('green','blue','red');
public function __construct(){
parent::__construct($this->props);
}