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


PHP OOP returning and calling single array value

我正在学习在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;

希望底线显示了我试图调用的内容,基本上是在我刚刚调用$row['icon']之后的sql结果中;直接从返回数组。

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

提前感谢

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

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;

尝试以下操作:

print_r ($user->getUser);

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

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

您应该这样使用它:

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

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

echo $user['icon'];

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