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