我最近又开始使用php进行编码,并且正在学习面向对象的PHP。 我遇到了一个问题,我似乎无法理解错误:
致命错误:在第57行的C:\ wamp \ www \ sso \ lib \ UserManagement.php中的非对象上调用成员函数verify_Username_And_Password()
据我所知,该程序似乎认为mysql类变量为空,但不是实例时的原因。
函数verify_Username_And_Password($ username,$ password)在Mysql类中定义。
以下是来自UserManagement.php的代码,其中包含了不需要的部分。
<?PHP
require_once 'lib/Mysql.php';
class UserManagement {
private $mysql;
function __construct(){
session_start();
$this->manage_Session();
$this->mysql = new Mysql();
}
function validate_User ($username, $password){
$user_Check = $this->mysql->verify_Username_And_Password($username, md5($password));
if($user_Check) {
return true;
} else {
return false;
}
}
}
我必须在PHP中遗漏一些关于OO的基本知识。我会很感激任何人都可以给予的建议。如果需要,我会很乐意发布更多代码。
答案 0 :(得分:0)
如果没有看到完成工作的代码,我猜你将使用validate_User方法而不首先构建UserMangement对象。
$um = new UserManagement();
$um->validate_User($username, $password);
如果您希望在未先构建UserManagement对象的情况下调用validate_User,则需要static method。如果没有构造UserManagement对象,则永远不会构造Mysql并将其保存在类中的属性中。