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

27 篇文章 0 订阅
12 篇文章 0 订阅

如果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改为数组了。

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



 




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值