簡體   English   中英

從同一個類中的函數調用PHP類中的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM