有人可以建议吗?
我们有一个抽象的基类,它有一些属性和一些方法.
从继承类调用方法(带参数),通常的目的是将传递的参数设置为基类的属性,除非它们看起来不会覆盖默认值.
如果我在abstract(base)类的构造函数中设置了一个值(用于测试目的)它工作正常,并且传递给构造函数的任何其他东西都可以工作,但我们想要做的是获取setErrors方法来实际设置属性的值.
例:
//abstract base class
private $errors = array();//the property we want to overide
public function __construct()
{
$this->errors[] = "This is a required field";//for testing purposes only this works
}
public function setErrors($error)
{
var_dump($error);//this proves that $error is passing something...
$this->errors[] = $error;//this doesnt work(override the property)
var_dump($this->error);//the property now has the $error value...
}
public function getErrors()
{
return "<li>".implode("</li>\n",$this->errors);
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否与基类是抽象的有关,即它没有被实例化.请有人解释为什么这不起作用?提前感谢您的兴趣.
编辑我们不是要试图从基层继承私有财产
我们想要做的是使用set方法覆盖属性,然后使用公共get方法返回属性.