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;
}

$fieldsそうでない場合は、クラス B の値を失わないように、クラス Aのプロパティに別の名前を付ける必要があります。

于 2012-07-13T09:17:02.100 に答える
1

プロパティを静的にする

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

変数へのアクセスを取得します

echo ClassName::$fields;
于 2012-07-13T09:20:55.993 に答える