0

ユーザー情報を取得し、クラス内のように変数に格納する関数があります。

    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;成功しなかったのですが、どうすればいいですか?

4

1 に答える 1

1

関数の実行が終了するとすぐに失われるローカル変数を定義しました。

あなたが望むことを行うためのより正しい方法は、次のような関数からデータを返すことです:

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

そして、次のようなメソッドを呼び出します

$rows = $yourObject->UserInformation();

または、オブジェクトが特定のユーザーを表す場合、取得したデータを次のようなインスタンス メンバーに格納できます。

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

そしてそれらにアクセスします

$yourObject->email

これは同様に機能しますが、前者が私が好むものです(ただし、タスク全体はわかりません)

于 2013-08-05T23:28:22.170 に答える