Задать вопрос

Как быстро и правильно преобразовать массив в экземпляр класса?

В сессии хранится массив с данными юзера, т. е. login, e-mail, avatar и т. п. Надо по быстрому создать экземпляр класса User, у которого свойства в точности совпадают с именами элементов массива. Как это сделать в одну строку?
Вариант $user = new User($_SESSION['name'], $_SESSION['email']... ) - слишком неуклюжий. Вот, например, обратный процесс выполняется легко:

$_SESSION = (array)$user;

Можно аналогично выполнить и преобразование массив->объект?

Спасибо.
  • Вопрос задан
  • 384 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
FanatPHP
@FanatPHP
Чебуратор тега РНР
В сессии надо хранить не массив, а объект
Ответ написан
breefix
@breefix
Технолог
Как-то так (в примере еще вложенные массивы учитываются):
www.richardcastera.com/blog/php-convert-array-to-o...
Ответ написан
Комментировать
65536
@65536
ну если стдкласс вас устроит можно так json_decode(json_encode($_SESSION['user'])); но все это колхоз ненужный
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Как на счёт аналогичного?:
$user = (object)$_SESSION;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы