我有一个定义的几个功能的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请为方舟提供答案,并为其他人提供帮助。谢谢。 –