更改子类中父类的变量的值

时间:2013-05-03 14:45:00

标签: php oop inheritance

class A {
    protected $a;

    // SOME CODE
}


class B extends A {
   // SOME CODE
}

如何在B类中编辑变量$ a的受保护值?

我正在尝试使用parent::$a = "Some Value"但不起作用。

2 个答案:

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

很简单:)

请记住

  

声明受保护的成员只能在类中访问   本身以及继承和父类

来自php manual