php类扩展

时间:2012-05-29 00:55:43

标签: php oop inheritance

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

例如:

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()没有设置。

2 个答案:

答案 0 :(得分:1)

是的,您可以通过$hello static

来完成此操作
public static $hello = array();

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

self::$hello[] = $me;

答案 1 :(得分:0)

您正在使用

parent::setter('yoo');

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