Контейнер случайных данных с использованием магических методов __get и __set

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

Я видел это: PHP — косвенное изменение перегруженного свойства

но он не обрабатывает рекурсивные данные:

class ActiveRecord extends Creator {

}

$a = new ActiveRecord();

$a->_id = "123456789";
$a->persona_info = [
"name" => "Bob",
"surnames" => ["First", "Second", "Third"]
];
$a->history = [
"logins" => [
[
"date" => "1999",
"ip" => "1.2.3.4"],
[
"date" => "1129",
"ip" => "1.2.3.4"]
],
"purchases" => [
[
"date" => "1819",
"amount" => "1884"],
[
"date" => "1459",
"amount" => "14"]
]
];

var_dump($a->history->logins);

Это дает мне:

PHP Notice:  Trying to get property of non-object in /tmp/x.php on line 90
PHP Stack trace:
PHP   1. {main}() /tmp/x.php:0
NULL

Пытаясь расследовать дальше, я вижу, что $a->history это простой массив PHP вместо Value объект (или даже Creator объект.

-1

Решение

Проблема в $a->history является array и не object, Так должно быть var_dump($a->history['logins']);

-1

Другие решения

Других решений пока нет …