2017-06-05 13 views
0

Base.phpというのプロパティを取得します。 $ this->設定で何かが壊れています。どうやってやるの?いくつかの設定ファイルがあり、関数を使って値を取得する必要があります。私はすべての設定ファイルで同じ関数を定義したくありません。基底クラスに派生クラスから

答えて

0

あなたはprivateの範囲を設定することができますがprotected $あなたがmySettings = $abc->GetValue('a');を、それがなければ

class Settings extends BaseSetting 
{ 
public function GetValue($setting) 
    { 
     return parent::getValue($setting) 
    } 
} 

を呼び出すことができるとき

または

それはBaseSettingのコンテキストでBaseSetting::GetValue()を呼び出しますから$ 。 $aprivateなので、BaseSettingにアクセスできません。 publicまたはprotectedのようにアクセス修飾子を変更する必要があるか、またはコールオーバーライドgetValue()が必要で、そこから返信するparent::getValue($setting)が必要です。

+0

'リターン親:: GetValueメソッド($設定)' doesnのでプロパティにアクセスすることができました私はあなたが正確に何をしたいかわからないが、周りの仕事は

class Settings extends BaseSetting { private $a = 'value 1'; private $b = 'value 2'; private $c = "value 3"; public function __get($attr) { return $this->$attr; } } 

かもしれませんプロパティー修飾子が 'private'を保っている場合は動作しません。 – paul

0

プロパティが宣言されているクラスのプライベートプロパティにのみアクセスできました。あなたの場合、それはSettingsのクラスです。

次にあなたが$mySettings = $abc->a;

関連する問題