【发布时间】:2011-08-14 19:56:18
【问题描述】:
有人可以建议吗?
我们有一个带有一些属性和一些方法的抽象基类。
方法(带参数)是从继承的类中调用的,其共同目的是将传递的参数设置为基类的属性,但它们似乎没有覆盖默认值。
如果我在抽象(基)类的构造函数中设置一个值(用于测试目的),它可以正常工作,并且传递给构造函数的任何其他内容都可以,但我们想要做的是让 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);
}
我不确定这是否与抽象基类有关,即因为它没有被实例化。请有人解释为什么这不起作用? 提前感谢您的关注。
编辑 我们不会试图从基类继承私有财产
我们要做的是用 set 方法覆盖该属性,然后使用公共 get 方法返回该属性。
【问题讨论】:
-
有什么问题? It works fine.