[英]Calling a function inside a PHP class from a function within the same class
由於我無法知道如何調用與另一個函數位於同一類中的函數,因此下面的代碼將無法運行。 我已經嘗試過使用$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");
}
}
}
不,我不是在創造這個對象
這就是調用$this->set_session($username);
失敗,如果你想遵循相同的代碼模式,你可以這樣做:
if ($num == 0) {
header("Location: login.php?e=1");
} elseif ($num == 1) {
self::set_session($username);
header("Location: admin.php");
}
您必須將set_session函數定義為private 。 這樣你就可以使用this-> set_session來引用它
private function set_session($username) {
$_SESSION["username"] = $username;
}
如果你使用login作為類方法,那么你必須這樣寫:
SESSION::set_session($username);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.