PHP OOP返回并调用单个数组值

时间:2012-08-03 13:17:10

标签: php oop

我正在学习在php中使用OOP,我遇到了一些可能是一个非常简单的解决方案的问题,我只是没有使用正确的搜索术语来查找。

我有我的班级

class user {

    function getUser() {

        if ($_SESSION['status'] == "authorized") {

            $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );

            $sql = "SELECT * FROM users WHERE username = :username";

            $st = $conn->prepare( $sql );

            $st->bindValue( ":username", $_SESSION['usernames'], PDO::PARAM_STR );

            $st->execute();

            $row = $st->fetch();

            $conn = null;

            return $row;

        }
    }
}

然后在我的模板文件中,我正在调用以下内容

$user = new user();
echo $user->getUser->icon;

希望底线显示我想要调用的内容,基本上在sql结果中我只是调用$ row ['icon'];直接来自返回数组。

这可能吗?若有,有人可以指出我缺少的术语

提前致谢

3 个答案:

答案 0 :(得分:1)

如果您要继续使用该对象,我会执行以下操作:

class user {
    public $icon;

    function getUser() {

    if ($_SESSION['status'] == "authorized") {

        $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );

        $sql = "SELECT * FROM users WHERE username = :username";

        $st = $conn->prepare( $sql );

        $st->bindValue( ":username", $_SESSION['usernames'], PDO::PARAM_STR );

        $st->execute();

        $row = $st->fetch();

        $conn = null;

        $this->icon=$row;

    }
    }
}

然后你可以使用:

echo $user->icon;

答案 1 :(得分:1)

尝试以下方法:

print_r ($user->getUser);

如果返回一个数组,请尝试这样:

echo $user->getUser['icon'];

答案 2 :(得分:1)

你应该这样使用它:

$userobj = new User();
$user = $userobj->getUser();

现在,您在$user变量中获取了数据,并可以随意输出:

echo $user['icon'];

我的示例应该与您现有的代码一起使用,如果您想在将来更改用户的值,只需更改echo语句中的键:echo $user['someothervalue'];