2013-07-23 67 views
0

我的類結構如下內訪問類變量,嵌套類

Class Core{ 
     public $Variable = "Test"; 

     Class SubClass{ 
      // functions, etc 

     } 

     // functions etc 
} 

我需要從子類類中訪問變量$變量,但我不能想辦法做到這一點。我試過$this->this->Variable沒有成功。

編輯雖然這是不正確的語法,這是我的課程系統是如何設置(並使用包括實現)。

+0

你必須注入父類爲在構造函數或工廠類 – Populus

+0

笑我認爲這是java的一秒鐘的子類......是啊PHP不支持內部類...如果它不會出錯,那麼它就是一個預期的「特性」 – Populus

+0

在PHP中沒有這樣的類內類結構,它應該如何工作? – deceze

回答

2

假設您設置了適當的繼承模型,則可以使用parent::。但是,你的代碼是一個平坦的語法錯誤。你不能像這樣嵌套類。

Class Core { 
    public $var = 'test'; 
} 

Class SubClass Extends Core { 
    function foo() { 
     $localvar = parent::$var; 
    } 
} 

評論隨訪:

也許更多的東西一樣嗎?

class Core { 
    public $Variable = 'foo'; 
    function __construct() { 
     $this->subclass = new SubClass($this->variable); 
    } 
} 

class SubClass { 
    public $coreVariable; 
    function __construct(&$var) { 
     $this->coreVariable = $var; 
    } 
} 
+0

編輯原始問題以添加更多的說明。 – Ryan

+0

你想要的是PHP不可能的。您可以在Core的構造函數中實例化SubClass,並將Core :: Variable作爲對SubClass構造函數的引用傳遞。 –

0

我要回答這個問題,因爲先前的評論顯示有關PHP是如何工作的這麼多無知和變量的作用域嵌套類和功能,這是完全正常的PHP做的時候。在程序代碼庫中使用第三方類時,會發生很多情況。

Class Core{ 
     public $Variable = "Test"; 

     Class SubClass{ 
      // functions, etc 
      function new() 
      { 
       global $Variable;// this brings the variable into scope 
       echo $Variable; 
      { 



     } 

     // functions etc 
}