0

我想知道是否有可能让一个扩展的类有一个 var 集并从基类中使用?

例如:

class me
{
    public $hello = array();

    protected function setter($me)
    {
        $this->hello[] = $me;
    }
}

class foo extends me
{
    public function __construct()
    {
        $this->setter('foo');
    }
}

class yoo extends me
{
    public function __construct()
    {
        parent::setter('yoo');
    }
}

$me = new me();
$foo = new foo();
$yoo = new yoo();

print_r($me->hello);

打印的数组是 array() 没有设置任何内容。

4

2 回答 2

1

是的,您可以通过制作$hello static来做到这一点:

public static $hello = array();

这样做时,您将不得不删除$thisfrom$this->hello[] = $me;并将其替换为 a self,因为hello对于当前对象实例将不再是唯一的:

self::$hello[] = $me;
于 2012-05-29T00:59:06.427 回答
0

你正在使用

parent::setter('yoo');

但是在我的父类中,该函数未定义为静态的。所以你不能使用 :: 来调用非静态函数。

于 2012-05-29T02:45:30.463 回答