2016-03-01 120 views
-1

我有一個類。在這個課堂內,我有一個私人靜態成員。我也有一個受保護的類函數以及一個公共靜態類函數。PHP:從靜態類功能設置靜態成員

本質上,我試圖設置靜態成員。流程就是這樣。

在受保護的類函數內部,有一個對其他類函數的調用: 前。

class MyClass extends someOtherClass{ 

    private static $myVar;  

    protected function login(){ 
     MyClass::createDBInstance(); 

    } 

    public static function createDBInstance(){ 
     self::$myVar = 'someValue'; 
    } 
} 

我遇到的問題是,一旦它使進入createDBInstance,並試圖設置自:: myVar的,它殺死。我是否忽略瞭如此基本的東西?

+1

當「殺死」時,你會得到什麼錯誤(例如Apache日誌)? –

+1

此代碼絕對有效。你確定你沒有試圖從範圍之外訪問login()嗎? – WhoIsJohnDoe

+0

我同意:http://codepad.org/TYevTaE4 –

回答

0

嘗試

private static $myVar; 

self::$myVar = 'someValue'; 

注意$字符。

+0

抱歉錯別字...他們都有$ – Srmuhs

+0

好吧。您是否可以在頁面或日誌文件中看到錯誤消息?這可能會有所幫助。也可以顯示你調用'createDBInstance'的代碼。 – OscarJ

+0

PHP致命錯誤:訪問未聲明的靜態屬性:MyClass :: $ myVar – Srmuhs