$value) { if (array_key_exists($field, $key_map)) { $field = $key_map[$field]; } $this->$field = $value; } } return $this; } /** * 设置属性 * @param $field * @param $value * @return BaseObject */ public function set($field, $value) { return $this->bind([$field => $value]); } //获取属性 public function get($field) { return $this->{$field}; } /** * 转化为数组 * @return mixed */ public function toArray() { $data = []; foreach ($this as $field => $value) { if ($value === NULL) { continue; } $data[$field] = $value; } return json_decode(json_encode($data), true); } /** * 转化为JSON */ public function toJson() { return json_encode($this, JSON_UNESCAPED_UNICODE); } /** * 转化为xml * @param array $data * @param bool $root * @return string */ public function toXml($data = [], $root = true) { if (!$data) { $data = $this->toArray(); } $str = ""; if ($root) $str .= ""; foreach ($data as $key => $val) { if (is_array($val)) { $child = $this->toXml($val, false); $str .= "<$key>$child"; } else { $str .= "<$key>"; } } if ($root) $str .= ""; return $str; } /** * @param $keys * @return static */ public function filterObj($keys) { $return = new static(); foreach ($keys as $key) { $return->$key = $this->$key; } return $return; } /** * @param $keys * @return array */ public function filterArray($keys) { $return = []; foreach ($keys as $key) { $return[$key] = $this->$key; } return $return; } }