Как можно упростить?

  • Автор темы Автор темы RASAMAHA
  • Дата начала Дата начала

RASAMAHA

Новичок
Как можно упростить?

Выглядит ужасно, а умения упростить не хватает...

PHP:
$data   = sqlsrv_fetch_array ( $result );

        $this->id                   = $data['id'];
        $this->soname               = $data['soname'];
        $this->name                 = $data['name'];
        $this->patronymic           = $data['patronymic'];
        $this->login                = $data['login'];
        $this->password             = $data['password'];
        $this->user_permission      = $data['user_permission'];
        $this->reg_time             = $data['reg_time'];
        $this->subdivision          = $data['subdivision'];
        $this->section              = $data['section'];
        $this->position             = $data['position'];
        $this->mail                 = $data['mail'];
        $this->ip                   = $data['ip'];
        $this->house_phone          = $data['house_phone'];
        $this->out_phone            = $data['out_phone'];
        $this->room                 = $data['room'];
 
объемно) я думаю, что можно как-то сократить запись? или нет?
 
Ну в каком месте объемно? Ты это что ли для каждого объекта пишешь или выделил код в метод класса, например fromArray и тебе объемно вызывать каждый раз этот метод?
 
Это конструктор, просто я думал, можно это записать более лаконично. Я туп и глуп)
 
foreach ($data as $k =>$v)
$this->$k = $v

?

но это будет работать только пока индексы массивов соответствуют правилам именования переменных в пыхе
ведь индекс напимер может быть типа $data[0].

-~{}~ 06.09.09 00:03:

Но вообще, лучше не тот код, что более короткий, а тот, что более читаемый.
 
$this->data=$data; - более лаконично, при именовании
$this->user_permission = $data['user_permission'];
Вы всеравно указываете имя переменной,в нашем случае извлекать придется так
$this->data['user_permission']
Вариант с foreach не совсем корректен, т.к. при изменении таблиц могут появляться непредсказуемые баги
 
Вариант с foreach не совсем корректен, т.к. при изменении таблиц могут появляться непредсказуемые баги
Чем эти баги будут отличаться от багов при исходном варианте?
 
нет исходника класса, могут быть случайные совпадения имен столбцов с именами переменных при дальнейших изменениях класса
 
Сверху