2015-11-05 69 views
0

我有以下問題。我有隻包含常量的子類。父類中有可變常量。我需要在父類中將常量作爲變量。 我嘗試從php的子類中獲取數組中的常量

$onClass = new ReflectionClass(__CLASS__); 
$this->constants = $onClass->getConstants(); 

但這種行爲只有當我在孩子的構造函數調用它。我需要在家長監督員的幫助下打電話給他。有沒有可能如何做到這一點?

非常感謝

+0

如果它是恆定的,不能通過調用它來訪問它? – Andrew

+1

我不認爲有什麼「變量常量」 –

回答

0

您的實現僅僅違背了繼承模型。您可能需要考慮重構。

這是它聽起來像你目前的設置是:

class A { 
    function __construct() { 
     $this->constants = $this->getConstants() 
    } 
} 

class B extends A { 
    public function getConstants() { 
     return [1, 2, 3]; 
    } 
} 

您將無法從A類聲明中稱getConstants。 A類不具備這樣的功能定義,它也不會知道(或關心)它是否是B.類的實例

它幾乎聽起來像你有你的層次逆轉:

class A extends B { 
    public $constants; 
    function __construct() { 
     $this->constants = $this->getConstants() 
    } 
} 

class B { 
    public function getConstants() { 
     return [1, 2, 3]; 
    } 
}