2015-11-07 95 views
0

我有如下類別PHP擴展OOPS類,B,C,A1問題

1. Software_Base 2. User Login 3. Basic Function 4. User Logout

我想做的事是我需要另一個子類來訪問子類的方法。但不爲間同連接延伸

我類擴展看起來像下面

  1. 軟件基地
  2. 用戶登錄
  3. 用戶退出
  • 基本功能
  • `

    class base_class { 
    
        public function __construct(){ 
         $this->init_class(); 
        } 
    
        public function init_class(){ 
         $this->user_login = new user_login; 
         $this->base_functions = new base_functions; 
        } 
    
        public function value_from_Base_class(){ 
         return 'Value From Base Class'; 
        } 
    
    } 
    
    class user_login extends base_class { 
        public function __construct(){ 
         var_dump($this->value_from_Base_class()); # Works :) 
        } 
    
        public function value_from_user_login_class(){ 
         return 'Value From User Login Class'; 
        } 
    } 
    
    
    class user_logout extends user_login { 
        public function __construct(){ 
         var_dump($this->value_from_Base_class()); # Works :) 
         var_dump($this->value_from_user_login_class()); # Works :) 
        } 
    
    } 
    
    
    class base_functions extends base_class{ 
        public function __construct(){ 
         var_dump($this->value_from_Base_class()); # Not Works :(
         var_dump($this->value_from_user_login_class()); # Not Works :(
        } 
    } 
    

    `

    +0

    如果你想在'base_function'類中調用'value_from_user_login_class()',那麼這個函數必須存在於'base_function'類或父類中。其他方面它不會工作。 替代方法:你可以在你的'base_functions'類中擴展'user_login' –

    +0

    @ChetanAmeta我試過了,但它不工作:( –

    +0

    你得到什麼錯誤? –

    回答

    0

    contructing base_functions時注入的user_login實例:

    class base_functions extends base_class{ 
        public function __construct($user_login){ 
         var_dump($this->value_from_Base_class()); 
         var_dump($user_login->value_from_user_login_class()); 
        } 
    } 
    $f = new base_functions(new user_login()); 
    

    base_functions$this->value_from_Base_class()呼叫無論如何都應該工作。

    +0

    對不起,我不應該這樣做我在wordpress中使用..所以這不是對我可能。 –