Я пытаюсь преобразовать объект, содержащий объект datetime rethinkdb (предоставленный библиотекой PHP-RQL), но я получаю фатальную ошибку:
Using $this when not in object context
Это обзор кода:
$day = new stdClass;
$datetime = new DateTime();
$arrival = r\time(
$datetime->format('Y'),
$datetime->format('m'),
$datetime->format('d'),
$datetime->format('H'),
$datetime->format('i'),
$datetime->format('s'),
'Z'
);
$day->arrival = $arrival;
$day = object_to_array($day);
Именно в функции object_to_array()
я получаю фатальную ошибку, ее код:
function object_to_array($obj) {
$array = array(); // noisy $array does not exist
$arrObj = is_object($obj) ? get_object_vars($obj) : $obj;
foreach ($arrObj as $key => $val) {
$val = (is_array($val) || is_object($val)) ? $this->getArray($val) : $val;
$array[$key] = $val;
}
return $array;
}
Я не помню, откуда я взял эту функцию (она не моя), но в прошлом она хорошо мне служила.
По сути, мой вопрос заключается в том, почему эта функция object_to_array
не работает?
Вот что возвращает функция r\time (объект): https://gist.github.com/fenfe1/6676924
Примечание. Преобразование только объекта времени в массив работает нормально, но передача объекта, содержащего время, завершается ошибкой.
В конечном итоге мне нужно получить массив для использования в другой функции, и, поскольку к объекту day
будут добавлены другие свойства, было бы полезно сохранить это как объект.
$this->getArray($val)
$это ссылка на объект, внутри которого вы находитесь - person Sterling Archer   schedule 24.09.2013$this->getArray
наobject_to_array
и все будет в порядке. - person Wrikken   schedule 24.09.2013