1

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

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

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

4

2 回答 2

4

编辑:

如果您可以控制 B 类,只需定义一个 getter 并将其设为$fields私有:

public function getFields() {
    return $this->fields;
}

然后在 A 类中,您可以执行以下操作:

public function getFields() {
    $parentFields = parent::getFields();
    // Do something with $parentFields
    return $this->fields;
}

如果没有,则必须为$fieldsA 类中的属性指定不同的名称,以免丢失 B 类的值。

于 2012-07-13T09:17:02.100 回答
1

将属性设为静态

public static $fields = array(...);

并通过以下方式访问变量

echo ClassName::$fields;
于 2012-07-13T09:20:55.993 回答