【发布时间】:2015-11-17 07:16:26
【问题描述】:
我正在尝试过渡到 OOP PHP,以帮助清理我目前正在使用的代码集群。
我正在使用 PHPPass 在我的数据库中对密码进行哈希处理,但使用这种 OOP 方法,我无法理解如何在我的班级的登录函数中调用它。
据我所知,在我尝试调用它的所有地方,它总是在我的类初始化之前声明,但它仍然告诉我它是未定义的或非对象。
db_config.php
...
require_once("PasswordHash.php"); // Location no.1 to try it
$password_hash = new PasswordHash(8, FALSE);
include_once("DB.php");
$db = new DB($db_connection);
...
init.php
//require_once("PasswordHash.php"); // Location no.2 to try it
//$password_hash = new PasswordHash(8, FALSE);
require_once("db_config.php")
..Other init stuff..
DB.php
class DB {
...
public function login() {
// global $password_hash; -> if uncommented I get an error saying it's a non-object
// Error here
$password_accepted = $password_hash->CheckPassword($p, $hp);
}
...
}
登录.php
require_once("init.php");
$db->login();
我还没有完全理解类作用域在 PHP 中是如何工作的,所以我觉得我错过了一些东西。
【问题讨论】:
-
PasswordHash 不是基于您在此处显示的类的名称。
-
我的错,那个类肯定存在