我有几个问题: 所以,我有一个A类如下:
class A {
protected $ _blah = 'blah';
public __construct {
$this-> setPath ('test');
new B;
}
public setPath ($ path) {
$ This -> _ blah = $ path;
}
}
我有一个B类如下:
class B extends A {
`echo $ this -> _ blah`;
}
不,为什么输出:'blah'而不是'测试'在B类。 但是,在我的B类实例之前,我已将A类中的变量更改为“test”。
答案 0 :(得分:0)
根据您发布的代码,问题很可能是因为您拨打了$This
而不是$this
。
作为参考,请看看PHP如何处理object inheritance。因为变量区分大小写,所以实际上并没有在发布的代码中更改类的属性。
更好的例子如下:
class A
{
public $property = 'foo';
}
class B extends A
{
public function __construct()
{
$this->property = 'baz';
}
}
// 'foo';
echo A::$property;
$b = new B;
// 'baz'
echo $b->property;