/** * 将对象返回成数据,若数据为对象也会一并转换 * */ public function getArrayCopy() { $arr = array(); foreach ($this->_offset_data as $k => $v) { if (is_object($v)) { if (method_exists($v, 'getArrayCopy')) { $arr[$k] = $v->getArrayCopy(); } elseif (method_exists($v, '__toString')) { $arr[$k] = $v->__toString(); } elseif ($v instanceof stdClass) { $arr[$k] = (array) stdClass; } else { $arr[$k] = get_object_vars($v); } } else { $arr[$k] = $v; } } # 获取public的数据 $k = array_keys(OOP_ORM_Parse::get_object_vars($this)); if ($k) { foreach ($k as $v) { $arr[$v] = $this->{$v}; } } return $arr; }