2016-04-05 7 views
0

これを拡張する子クラス内の親クラスの__constructプロパティにアクセスしようとしていますが、複数のメソッドを試してみて、期待される結果。親コンストラクタのプロパティを拡張してアクセスする方法

私はbaseControllerとそれを拡張するindexControllerを持っているので、子コントローラ内の親のプロパティに直接アクセスできるようにしたいと考えています。

  $config = ['site' => 'test.com']; 

      class baseController { 

       public function __construct($config){ 

        $this->config = $config; 

       } 

      } 

      class indexController extends baseController { 

       public function __construct(){ 
        parent::__construct(); // doesnt seem to give any outcome 
       } 

       public static function index() { 

        var_dump($this->config); // need to access within this method 

       } 

      } 

      $app->route('/',array('indexController','index')); // the route/would call this controller and method to return a response 
+1

あなたは 'indexController呼び出す場合::静的コンテキストでindex'は、' $ this' – Federkun

+2

__construct($の設定)にアクセスすることができません__constructと同じではありません() – bassxzero

+0

他にどのように私は希望静的:: $ configでプロパティにアクセスしますか?私は、私が使用しているフレームワークの一部として静的インデックスメソッドを呼び出す必要があると思います – mhvvzmak1

答えて

0

コードにはいくつか問題があります。あなたがグローバルとして設定を設定している、それはあなたのBaseController内にある必要がありますし、publicまたはprotectedに設定します。

class BaseController { 
    protected $config = ... 

だけ@ mhvvzmak1述べたように、あなたの子供のコンストラクタが適切に親を呼んでいます。たとえば、あなたがそうのようにそれを行うことができます。今述べたdan08よう

class IndexController extends BaseController { 

    public function __construct(){ 
     $config = []; 
     parent::__construct($config); 
    } 

そして最後に、あなたはあなたのインデックス機能を変更、静的メソッドから$thisを参照することはできません。

public function index() { 

更新

あなたのフレームワークが必要とするように子関数を静的にしたい場合は、静的functioを設定しますnをBaseControllerに置き、子でそれを呼び出します。

class BaseController { 

    protected static function config() { 
    return ['site' => 'mySite']; 
    } 
} 

class Child extends BaseController { 
    public static function index() { 
     $config = BaseController::config(); 
    } 
} 
+0

フレームワークが許可されていないようです私は静的からメソッドを変更するには、私はエラーを取得する "非静的メソッドindexController :: index()は静的(8192)呼び出されるべきではない" – mhvvzmak1

+0

あなたはどのフレームワークを使用していますか? – KDaker

+0

http://flightphp.com/ – mhvvzmak1

関連する問題