我有一些代碼在下面,由於我無法知道如何調用與另一個函數相同的類中的函數,因此無法運行。我已經嘗試使用$this
,但它給了我一個PHP錯誤Using $this when not in object context...Line 25
。我不知道如何解決這個問題,我希望別人能給我一些關於怎麼做的提示。我的代碼如下,謝謝:)從同一個類中的函數調用PHP類中的函數
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");
}
}
}
您是否試圖靜態地運行呢?或者你是否真的在創建一個對象並對其進行操作? Session :: login($ a,$ b)vs $ pSession = new Session(); $ pSession-> login($ a,$ b); – 2012-03-15 00:29:29
通過其他文件,我在這個文件上使用require()來做'Session :: login()',但是在這種情況下,我需要從'login()'調用'set_session()'。不,我沒有創建對象。 – 2012-03-15 00:31:28
您運行的是哪個版本的PHP?雖然沒有範圍解析(默認爲public),但當您在類構造中創建函數時,它將成爲一種方法(仍然使用function關鍵字tho)。對'$ this-> set_session'的調用看起來應該起作用。調用代碼是什麼樣的? – 2012-03-15 00:32:23