php oop есть способ автоматически установить эти переменные

class User extends DatabaseObject { protected static $table_name='users'; protected static $db_fields = array(); public function __construct() { // Get columns from table global $database; $result_set = $database->query("SELECT * FROM ".self::$table_name." LIMIT 1"); $num_fields = mysql_num_fields($result_set); for($i=0; $i<$num_fields; $i++) { $column_name = mysql_field_name($result_set, $i); // Set column names as variables self::$db_fields[] = $column_name; // THIS WORKS $this->{$column_name}; // THIS IS PROBLEMATIC! } } 

например, это $name = pulic $wherever; поэтому я могу позвонить, например, wherever->wherever ;

так что мне не нужно вводить это имя каждый раз, когда я добавляю переменные

 public $md5; public $credit; public $pontaria_time; public $Credits; public $airoplayne; public $city_id; public $prisao_time; public $crime2; public $banck_time; 

  $this->{$column_name}; // THIS IS PROBLEMATIC! 

Вы должны использовать

 $this->$column_name = $column_value 

ИЛИ вы можете написать все столбцы в поле $ db_fields и добавить

 public function __get($name) {} 

(читайте о магических методах )

Я думаю, что я не понимаю ваш вопрос, но я думаю, вы хотите использовать оператор ссылок :

 class MyClass { protected $name; public myfunction() { $foo = $this->name; $this->name = &$foo; // now $foo is a reference to $this->name } } 

Гм … Я думаю, вы спрашиваете, как не нужно явно объявлять свойства. В этом случае выполните следующее:

 for($i=0; $i<$num_fields; $i++) { $column_name = mysql_field_name($result_set, $i); $this->$column_name = ""; } 

Это добавит все имена столбцов в качестве свойств вашего класса по умолчанию как общедоступные. Затем вы можете получить к ним доступ, используя $ this-> md5, $ this-> credit и т. Д. …

Вероятно, вам стоит взглянуть на PDO и вернуть строки и объект и применить к ним приведение … PDO имеет методы выборки, в которых вы указываете имя класса, и делаете это автоматически. Я настоятельно рекомендую НЕ создавать собственную библиотеку абстракции базы данных или ORM, поскольку есть уже очень хорошие.