Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632

как вернуть при json_decode исходный класс объекта?

15.09.2013, 00:15. Показов 1660. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
class Old{
    
    public $R=5;
}
$obj=new Old;
$str=  json_encode($obj);
 
var_dump($str);
 
var_dump(json_decode($str));
// вернут объект stdclass.
Как получить объект исходного класса Old?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2013, 00:15
Ответы с готовыми решениями:

Как при выходе из функции вернуть "старое" значение объекта
Byval работает только на простые типы - string?... У меня есть свой type или function. Мне необходимо при выходе из функции вернуть его...

При создании объекта вернуть существующий
Здравствуйте, уважаемые! Есть куча файлов, из которых по мере надобности создаются объекты: myObj m = new...

При попытке вернуть объект из операции вида =eval('Имя объекта')..
При попытке вернуть объект из операции вида =eval('Имя объекта') исли делаю это с объектом созданным из тега IMG всё работает а...

4
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
15.09.2013, 08:55
Никак. Это же JSON. Это способ записи структурированных данных, и в этом способе нет понятия "класс".

Добавлено через 2 минуты
А вот serialize() умеет это делать, но a для восстановления особых нужд класс должен может реализовывать __sleep() и __wakeup(): http://www.php.net/manual/ru/l... agic.sleep

Добавлено через 2 минуты
Также есть интерфейс Serializable. Любят же они делать одно и то же разными взаимноисключающими способами.
1
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
15.09.2013, 09:11  [ТС]
Сначала думал про клонирование (clone) object и простым перебором свойств объекта.
Попробую использовать ваш метод,но хочу увидеть копируются ли приватные свойства/методы
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
15.09.2013, 09:34
Цитата Сообщение от koza4ok Посмотреть сообщение
но хочу увидеть копируются ли приватные свойства/методы
В serialize() - да, копируются. А если класс реализовывает интерфейс Serializable, то Вы сами контролируете, что именно отдавать на сохранение, и как из этого потом восстановиться.

Вообще, если нужно именно скопировать объект на месте, то зачем прибегать к сериализации, если есть упомянутый clone? Есть и метод __clone().
1
 Аватар для AndreyDyakonov
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
15.09.2013, 18:56
без дополнительных действий, конечно не получится, поля(свойства) классов можно сохранить в массиве, массив сохранить json_encode, а потом вернуть его из этого массива =(array) json_decode.. Обязательно указать, что возвращаемые данные есть массив
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2013, 18:56
Помогаю со студенческими работами здесь

Как вернуть все свойства объекта?
У меня есть объект: var mycar = {make: 'Honda', model: 'Accord', year: 1998}; Как мне вернуть все свойства объекта mycar. Под всеми...

Как вернуть результат функции в литерал объекта
Всем здасьте, Пытаюсь написать скрипт рулетки. Ссылка на файлы Затык в следующем - при нажатии на кнопку start запускается function...

Как вернуть массив, и как неявно получить атрибут объекта?
хочу спросить как из функции вернуть массив int g(void){ int a; //как-то его заполнить return a; } массив...

как вернуть объект из ф-и, если, возможно, объекта не существует?
Пример: TTo4ka TForm1::GetPoint(const short &X,const short &Y) { short Nom = p_MassivTo4ek; if (Nom>0) //значит есть точка ...

Как вернуть ссылку на класс
Здравствуйте, есть класс и нужно вернуть на него ссылку, а затем перегрузить hashCode() , подскажите как это сделать, типо вот этого кода в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru