当A类扩展B类时,它们都具有相同的属性

时间:2012-07-13 09:14:59

标签: php class extends

我有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'=>'' );

只有数组中的结构和值不同。

我需要访问这两个属性,我该怎么做?

2 个答案:

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