导致Android/IOS崩溃的null----PHP和Android/IOS数据交互

如果Android或者IOS收到了null这种下发字段,会崩溃!!!这是最不能忍的,而我们的数据库由于刚开始的时候没有做好处理,导致很多时候会下发null,因此代码中经常会出现这样的临时修改方案:

            $ret[‘description‘] = $v[‘description‘] ? $v[‘description‘] : ‘‘;
            $ret[‘title‘] = $brind_name ? $brind_name : ‘‘;
            $ret[‘brand_id‘]=  $v[‘brand_id‘] ? $v[‘brand_id‘] : ‘‘;
            $ret[‘series_id‘] = $v[‘series_id‘] ? $v[‘series_id‘] : ‘‘;
            $ret[‘model_id‘] =$v[‘model_id‘] ? $v[‘model_id‘] : ‘‘;
            $ret[‘customer_id‘] = $v[‘customer_id‘] ? $v[‘customer_id‘] : ‘‘;
            $ret[‘car_color‘] = $v[‘car_color‘] ? $v[‘car_color‘] : ‘‘;
            $ret[‘car_number‘] = $v[‘car_number‘] ? $v[‘car_number‘] : ‘‘;
            $ret[‘ad_note‘] = $v[‘ad_note‘] ? $v[‘ad_note‘] : ‘‘;
            $ret[‘transfer_num‘] = $v[‘transfer_num‘] ? $v[‘transfer_num‘] : ‘‘;
            $ret[‘maintain_address‘] = $v[‘maintain_address‘] ? $v[‘maintain_address‘] : ‘‘;
            $ret[‘year_check_time‘] = date(‘Y-m-d‘, $v[‘year_check_time‘]) ? date(‘Y-m-d‘, $v[‘year_check_time‘]) : ‘‘;
            $ret[‘card_time‘] = date(‘Y-m-d‘, $v[‘card_time‘]) ? date(‘Y-m-d‘, $v[‘card_time‘]) : ‘‘;
            $ret[‘update_time‘] = date(‘Y-m-d H:i:s‘, $v[‘update_time‘]) ? date(‘Y-m-d H:i:s‘, $v[‘update_time‘]) : ‘‘;
            $ret[‘telephone‘] =$ret[‘mobile‘] ? $ret[‘mobile‘] : ‘‘;
            $ret[‘status‘] = $v[‘status‘] ? $v[‘status‘] : 0;
            $ret[‘sale_status‘] = $v[‘sale_status‘] ? $v[‘sale_status‘] : 0;

看到了么?每个返回的参数去判断是否为空。。这不是坑爹么?这种东东肯定是用一个函数搞定啊!!经过仔细测试,用了个递归函数处理所有的输出:

    /**
     * @biref将数组或者字符串中的null转化成‘‘
     * @param  array $vars
     * @return array $retsult
     * @author water
     * @example 
     */
    public static function changeNull($vars,$from=null,$to=‘‘) {
        if (is_array($vars)) {
            $result = array();
            foreach ($vars as $key => $value) {
                $result[$key] = self::changeNull($value,$from,$to);
            }
        } else {
            $result = ($vars === null || strtolower($vars) == ‘null‘) ? ‘‘ : $vars;
        }
        return $result;
    }



很早以前就发现PHP和Android/IOS数据交互的时候会有很多应该注意的地方:

交互的时候用的数据格式:JSON

PHP是弱语言类型:如果是个索引数组,到了客户端(IOS/Android)那边还是数组,如果是个键值对类型的数组,到了客户端就成了对象。

当然PHP这边很好解决:直接使用json_decode();

$person = json_decode(‘{"name":"water","age":24}‘, true);

这样就把所有的json改为数组了。

不要同时使用索引数组和键值对数组。








导致Android/IOS崩溃的null----PHP和Android/IOS数据交互,布布扣,bubuko.com

导致Android/IOS崩溃的null----PHP和Android/IOS数据交互

上一篇:android Animations 动画效果(四)


下一篇:使用Flash_TooL软件刷机Android 手机步骤