我有一個定義的幾個功能的PHP類,這個類是負責數據庫的訪問:PHP - 調用未定義的方法
class database {
function open($params) {
// code here to open the db
}
function close() {
// code here to close the db
}
function count_users() {
// code here counts the number of user records
// Return -1 for testing
return -1;
}
function insert_user($user) {
// code here inserts a user record
}
function select_user($user_id) {
// code here selects a user record
}
}
我已經訪問類的定義如下:
require_once("database.php");
class user {
public $user_id;
public $email_address;
// etc, etc
}
class db_user {
static function select_user($user_id) {
$db = new database();
$db->open();
$user = NULL;
$result = $db->select_user($user_id);
// Test the result and decode user record into $user, etc
$db->close();
return $user;
}
static function count_users() {
$db = new database();
$db->open();
$count = $db->count_users();
$db->close();
return $count;
}
}
當我嘗試通過db_user::count_users();
統計用戶數量時,出現我的問題,該用戶總是以發生故障致命錯誤:調用未定義的方法數據庫:: count_users
如果我使用get_class_methods
轉儲數據庫類方法,我可以看到count_users函數不在列表中,但我不知道爲什麼。
我非常喜歡PHP n00b,所以有些事情可能真的很明顯,我沒有做。我的db_user
和user
類有許多其他功能,通過database
類將數據拉回,並且所有這些都成功 - 只是這一個功能。
請幫忙!
UPDATE
好了,所以,在除去從一對夫婦的功能,數據庫類和重新上傳文件到直播服務器,看來,它以某種方式被「緩存」,當我轉儲屬於數據庫對象的方法,刪除的方法仍顯示在列表中。
當我檢查上傳到服務器的文件時,count_users函數在方法列表中也不存在,它在代碼中。
有沒有什麼辦法去除這個緩存?
'db_user'沒有'count_users'方法這個方法在類'database'中,你可以'擴展''db_user'類或最好的方法是使用'Dependency injection' – VeeeneX
這個方法確實存在於db_users類和數據庫類 - 它的數據庫之一,但它抱怨雖然。 – weblar83
@ weblar83請爲方舟提供答案,併爲其他人提供幫助。謝謝。 –