PHP对象继承:如何访问父属性?

时间:2013-06-16 13:48:39

标签: php object inheritance

我为PHP对象继承编写了这个小测试脚本:

<?php

class A {
    protected $attr;

    public function __construct($attr) {
        $this->$attr = $attr;
    }

    public function getAttr() {
        return $this->attr;
    }
}

class B extends A {

}

$b = new B(5);
echo $b->getAttr();

这什么都没显示! 为什么不显示5? B类不应该像A级一样吗?

2 个答案:

答案 0 :(得分:4)

错误在于:

$this->$attr = $attr;

您在此处指定$this->{5}$attr的值)。

写信,以解决该属性:

$this->attr = $attr;
//     ^------ please note the removed `$` sign

要注意在这种情况下发生了什么,请尝试转储您的对象:var_dump($b);

答案 1 :(得分:2)

您正在使用variable variable而不是直接访问变量

 $this->$attr = $attr;
        ^
        |----- Remove This

使用

 $this->attr = $attr;