由于我无法知道如何调用与另一个函数位于同一类中的函数,因此下面的代码将无法运行。我已经尝试使用$this
,但它给了我一个PHP错误Using $this when not in object context...Line 25
。我不知道如何解决这个问题,我希望别人可以给我一些关于该怎么做的提示。我的代码如下,谢谢:)
class SESSION {
function start() {
session_start();
}
function check() {
if ($_SESSION["username"]) {
return $_SESSION["username"];
} else {
return "nli"; //Not logged in :(
}
}
function set_session($username) {
$_SESSION["username"] = $username;
}
function login($username, $password) {
$database = DB::connect();
$passwordsha = sha1($password);
$query = "";
$res = $database->query($query);
$num = $res->num_rows;
if ($num == 0) {
header("Location: login.php?e=1");
} elseif ($num == 1) {
$this->set_session($username);
header("Location: admin.php");
} else {
header("Location: login.php?e=2");
}
}
}
答案 0 :(得分:9)
不,我没有创建对象
这就是调用$this->set_session($username);
失败的原因,如果你想遵循相同的代码模式,你可以这样做:
if ($num == 0) {
header("Location: login.php?e=1");
} elseif ($num == 1) {
self::set_session($username);
header("Location: admin.php");
}
答案 1 :(得分:0)
如果你使用login作为类方法,那么你必须这样写:
SESSION::set_session($username);
答案 2 :(得分:0)
您必须将set_session函数定义为私有。这样您就可以使用 this-> set_session
来引用它private function set_session($username) {
$_SESSION["username"] = $username;
}