2013-03-20 173 views
0

如何創建在該類函數外部可用的類函數內創建的變量?聲明作爲全局變量在類中創建的變量

例如,我的主類的構造函數創建了一個logging類的實例。我想讓這個$ log變量在其他類中使用(我使用global關鍵字)。

這可能嗎?

+0

在創建它的函數或$ GLOBALS ['log']'中使用'global'關鍵字,但是您應該重新考慮這一點。一個類的構造函數是否應該實例化另一個將被全局使用的構造函數?可能你應該在其他類之外實例化日誌類。 – 2013-03-20 02:42:07

回答

1

您可以使用靜態。現在

class Main 
    { 
    static private $log; 

    public function __construct() 
     { 
     self::$log = new Log(); 
     } 

    static public function getLog() 
     { 
     return self::$log; 
     } 
    } 

您可以登錄使用到處

Main::getLog(); 
+0

謝謝..這可能是我拿的路! – Lock 2013-03-20 03:31:36

1

使用全局會破壞OOP的目的可以訪問$。 OOP旨在緩解依賴性併爲模塊化使用提供代碼控制。

您只是簡單地接近您的應用程序設計,而不是設計輕鬆訪問日誌記錄實例。那是;實例化您的日誌記錄類並將該實例存儲在某個可由其他依賴它的類訪問(設計)的地方。一種「註冊表」。

+0

好的答案..你對OOP目標的失敗非常有效。我會重新思考我想如何工作。 – Lock 2013-03-20 03:31:21