我想知道为什么以下代码不会打印出任何内容。我正在尝试从父类中的方法访问Bar::$some_var
。其中Bar::$some_var
在其构造函数中定义。
我尝试在self::$some_var
中使用static::$some_var
和Foo::hello()
,但都没有效果。我是否必须$some_var
static
?
class Foo {
private $some_var;
public function __construct() {
$this->some_var = 5;
}
public function hello() {
print $this->some_var;
}
}
class Bar extends Foo {
public function __construct() {
$this->some_var = 10;
}
}
$bar = new Bar();
$bar->hello();
提前致谢。
答案 0 :(得分:5)
答案 1 :(得分:1)
如果您希望您的子类访问它,您的类变量不能是私有的。 尝试保护,它应该工作!
答案 2 :(得分:0)
无论如何,在您的代码中,问题是$ some_var的可见性。它必须几乎受到保护,公众也将工作