0
我有一個Users類和一個Log類。在用戶類中,我有幾種方法。如果在方法中發現錯誤,我會調用Log類中的靜態方法將錯誤寫入文本文件和數據庫。但是,嘗試實際調用靜態方法不起作用,並且我沒有收到錯誤消息。不能從另一個類中調用靜態方法
我通過使用'require_once'Log.php'並通過使用Log :: log_error()調用方法在Users類中包括Log類。
那麼這裏發生了什麼?
我有一個Users類和一個Log類。在用戶類中,我有幾種方法。如果在方法中發現錯誤,我會調用Log類中的靜態方法將錯誤寫入文本文件和數據庫。但是,嘗試實際調用靜態方法不起作用,並且我沒有收到錯誤消息。不能從另一個類中調用靜態方法
我通過使用'require_once'Log.php'並通過使用Log :: log_error()調用方法在Users類中包括Log類。
那麼這裏發生了什麼?
我調用靜態方法的方式沒有任何問題;我的程序中只有一個語法錯誤(缺少分號)。經過一個良好的夜間睡眠,我意識到自己當時正在做什麼,並決定用我的大腦和常識。對於其他新手,這裏是我所做的:
我確保我有錯誤報告設置爲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);
}
}
}
請出示一些代碼和定義「不工作「更詳細地說。 – deceze