我有A类和B类,其中A类扩展了B类。
它们都有属性$ fields,其中$ fields是一个数组,如:
A类字段
public $fields = array( 'id'=>'', 'product'=>'', 'productXpath'=>'', 'price'=>'', 'priceXpath'=>'', 'currency'=>'', 'website_url'=>'', 'url_id'=>'', 'day'=>'', 'month'=>'', 'year'=>'', 'time'=>'', 'status'=>'' );
B类字段
public $fields = array( 'id'=>'', 'website'=>'', 'visits'=>'', 'plugin_id'=>'', 'status'=>'' );
只有数组中的结构和值不同。
我需要访问这两个属性,我该怎么做?
答案 0 :(得分:4)
修改强>
如果您可以控制B类,只需定义一个getter并使$fields
为private:
public function getFields() {
return $this->fields;
}
然后在A班你可以做到:
public function getFields() {
$parentFields = parent::getFields();
// Do something with $parentFields
return $this->fields;
}
如果没有,您必须为A类中的$fields
属性指定一个不同的名称,以免失去B类的值。
答案 1 :(得分:1)
将属性设为静态
public static $fields = array(...);
并通过
访问变量echo ClassName::$fields;