Можно ли создать класс 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
объект.
Проблема в $a->history
является array
и не object
, Так должно быть var_dump($a->history['logins']);
Других решений пока нет …