从另一个类调用类的变量的逻辑

时间:2016-09-26 15:50:48

标签: php oop logic

我有几个问题: 所以,我有一个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”。

1 个答案:

答案 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;