This is my USER class for getting user data.
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();
Can anybody tell me which is the best method to make private properties and to get content using a public get_name(); method like echo $user->get_last_name()?
or to just echo property content?  echo $user->last_name.
Extra question: how can I use $_SESSION variables inside a class? Should I pass it as a function parameter?
 
     
     
    