打印类函数中的变量


Printing variables from class functions

我有一个函数,它检索用户信息并将其存储在类中的变量中:

    public function UserInformation() {
        $query = "SELECT * FROM users WHERE username = '$this->user'";
        try {
            $stmt = $this->db->prepare($query); 
            $stmt->execute(); 
        }
        catch(PDOException $ex) 
        { 
            die("Failed to run query: " . $ex->getMessage()); 
        } 
        $rows = $stmt->fetch();
        $email = $rows['email'];
        $username = $rows['username'];
    }

然后,我将如何显示该函数中的单个变量?我尝试过echo $retrieveInfo->UserInformation->username;,但没有成功,我该怎么做?

您已经定义了局部变量,一旦函数结束执行,这些变量就会丢失。

做你想做的事情的更正确的方法是从函数返回数据,比如:

$rows = $stmt->fetch();
return $rows;

并调用类似的方法

$rows = $yourObject->UserInformation();

或者,如果对象代表一个特定的用户,您可以将检索到的数据存储在实例成员中,例如:

$this->email = $rows['email'];

然后访问它们

$yourObject->email

这也可以,而前者是我更喜欢的(尽管我不知道整个任务)