src/Controller.php
private function encode($data)
    {
        // 已经是字符串
        if (is_string($data)) {
            return $data;
        }

        // 数值
        if (is_numeric($data)) {
            return '' . $data;
        }

        // 空
        if (is_null($data)) {
            return '';
        }

        // 布尔,转换成1/0 1为真,0为假
        if (is_bool($data)) {
            return $data ? '1' : '0';
        }

        // 如果是行对象或结果集对象,调用方法转为数组
        if (is_object($data) and method_exists($data, 'toArray')) {
            $data = $data->toArray();
        }

        // 如果不是数组,那就不认识了,强行转换为数组
        if (!is_array($data)) {
            $data = (array)$data;
        }

        // 结果数组
        $ret = [];
        foreach ($data as $k => $v) {
            // 递归编码数组元素
            $ret[$k] = $this->encode($v);
        }

        // 返回结果数组
        return $ret;
    }
private function encode($data)
    {
        // 已经是字符串
        if (is_string($data)) {
            return $data;
        }

        // 数值
        if (is_numeric($data)) {
            return '' . $data;
        }

        // 空
        if (is_null($data)) {
            return '';
        }

        // 布尔,转换成1/0 1为真,0为假
        if (is_bool($data)) {
            return $data ? '1' : '0';
        }

        // 如果是行对象或结果集对象,调用方法转为数组
        if (is_object($data) and method_exists($data, 'toArray')) {
            $data = $data->toArray();
        }

        // 如果不是数组,那就不认识了,强行转换为数组
        if (!is_array($data)) {
            $data = (array)$data;
        }

        // 结果数组
        $ret = [];
        foreach ($data as $k => $v) {
            // 递归编码数组元素
            $ret[$k] = $this->encode($v);
        }

        // 返回结果数组
        return $ret;
    }
递归方式对数据进行编码
主要 是去除 null,bool,数值 , 都以字符串方式表现

@param mixed $data 任意数据
@return string|array