这是我获取用户数据的USER
课程。
require_once "classes/DB.php";
class USER {
private $session_user_id = 1;
//$session_user_id = $_SESSION["user_id"];
private $user_data;
public $username;
public $first_name;
public $last_name;
public $profile_photo;
private static $instance = null;
//kthen objekt.
private function __construct() {
$db = DB::get_instance();
$query = "SELECT * FROM `users` WHERE `user_id` = $this->session_user_id";
$run_query = $db->mysqli->query($query);
$this->user_data = $run_query->fetch_assoc();
$this->username = $this->user_data["username"];
$this->first_name = $this->user_data["first_name"];
$this->last_name = $this->user_data["last_name"];
$this->profile_photo = $this->user_data["profile"];
}
public static function get_instance() {
if(!isset(self::$instance))
self::$instance = new self;
return self::$instance;
}
public function first_name() {
return $this->first_name;
}
}
$user = USER::get_instance();
有人可以告诉我使用properties
这样的公共get_name();
方法制作私有echo $user->get_last_name()
以及获取内容的最佳方法是什么?
或只是回显属性内容? echo $user->last_name
。
额外的问题:如何在类中使用$_SESSION
变量?我应该将它作为函数参数传递吗?
答案 0 :(得分:1)
首先,您应该查看$_SESSION
问题的流行框架设计。
在我看来,最好将getter和setter方法用于面向对象的方法。因为与从类中直接调用变量相比,这些变量无法从外部修改。此外,您可以使用受保护的变量比私有更好。
您可以从Stack Overflow中阅读以下主题: