Фатальная ошибка: непойманные ошибка: используя $this, когда не в контексте объекта
Я написал класс для автоматизации создания экземпляров, который выглядит следующим образом :
<?php class user{ protected static $db_table = "users"; protected static $db_table_fields = array('username ' , 'password' , 'firstname' , 'lastname'); public $id; public $username; public $password; public $firstname; public $lastname; //protected static properties = self::get_properties(); public static function find_user_by_id($id){ global $database; $result_array = array(); $sql = "SELECT * FROM users WHERE id = '$id'"; $result = $database->db->query($sql); while ($fetch = $result->fetch_array()){ $result_array[] = self::inst($fetch); } return array_shift($result_array); } public static function inst($fetch){ $instance = new User(); $var = $this->get_properties(); // $var = get_object_vars($instance); foreach($fetch as $key => $value){ if(array_key_exists($key , $var)){ $instance->$key = $value; } } return $instance; } public function get_properties(){ $properties = array(); $tables = Self::$db_table_fields; foreach($tables as $field){ if(property_exists($this , $field)) { $properties[] = $this->$field; } } return properties; } } ?>
и я получаю фатальная ошибка: непойманные ошибка: используя $this, когда не в контексте объекта в /var/ВСП/клиентам/client0/web6/веб/админ/admin_includes/пользователей.РНР:33 трассировка стека: #0 /var/www/clients/client0/web6/web/admin/admin_includes/user.php(20): пользователь::инст(массив) #1 /var/www/clients/client0/web6/web/admin/index.php(52): пользователь::find_user_by_id(17) #2 {главная} брошены в /var/www/clients/client0/web6/web/admin/admin_includes/user.php по строке 33 при звонке , пожалуйста, помогите мне исправить это.
Что я уже пробовал:
Я пытался сделать функции публичными, но тоже потерпел неудачу.