我想知道是否可以让一个扩展的类具有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()没有设置。
答案 0 :(得分:1)
是的,您可以通过$hello
static:
public static $hello = array();
这样做,您必须从$this
删除$this->hello[] = $me;
并将其替换为self
,因为hello
将不再是当前对象的唯一实例:
self::$hello[] = $me;
答案 1 :(得分:0)
您正在使用
parent::setter('yoo');
但在父类我中,该函数未定义为静态。所以你不能使用::来调用非静态函数。