2012-01-24 89 views
0

我有一個Users類和一個Log類。在用戶類中,我有幾種方法。如果在方法中發現錯誤,我會調用Log類中的靜態方法將錯誤寫入文本文件和數據庫。但是,嘗試實際調用靜態方法不起作用,並且我沒有收到錯誤消息。不能從另一個類中調用靜態方法

我通過使用'require_once'Log.php'並通過使用Log :: log_error()調用方法在Users類中包括Log類。

那麼這裏發生了什麼?

+2

請出示一些代碼和定義「不工作「更詳細地說。 – deceze

回答

4

我調用靜態方法的方式沒有任何問題;我的程序中只有一個語法錯誤(缺少分號)。經過一個良好的夜間睡眠,我意識到自己當時正在做什麼,並決定用我的大腦和常識。對於其他新手,這裏是我所做的:

我確保我有錯誤報告設置爲error_reporting(E_ALL)(注意:這不是生產服務器);我運行命令tail -f實時查看新的日誌條目。

然後我再次運行腳本,果然我有一個很好的「PHP解析錯誤:語法錯誤..」錯誤。

作爲參考,如果任何人誰不熟悉OOP想看看我是如何用一個靜態方法調用,這裏的代碼片段:

class Log 
{ 
    public static function log_err($data) 
    { 
    //put code here 
    } 
} 


class User 
{ 
    private function user_action($action) 
    { 
    //put code here 

    //If error call static method from Log class 
    if($err) 
    { 
     Log::log_err($data); 
    } 
    } 

} 
相關問題