我正在尝试转换一个包含 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
对象中,因此将其保留为对象将是有益的。