class A {
protected $a;
// SOME CODE
}
class B extends A {
// SOME CODE
}
如何在B类中编辑变量$ a的受保护值?
我正在尝试使用parent::$a = "Some Value"
但不起作用。
答案 0 :(得分:5)
protected
实例属性,那些未使用static
声明的实例属性,可以使用$this
在子类中访问:
class A {
protected $a;
// SOME CODE
}
class B extends A {
// SOME CODE
public function edit($val) {
$this->$a = $val;
echo "a is now {$this->a}\n";
}
}
呼叫:
$b = new B();
$b->edit('foo'); // a is now foo
请参阅manual,尤其是示例。
答案 1 :(得分:1)
class B extends A {
public function foo($val)
{
$this->a = $val;
}
}
很简单:)
请记住
声明受保护的成员只能在类中访问 本身以及继承和父类