ThinkPHP : Illegal offset type in isset or empty错误原因及解决方法

php:Illegal offset type in isset or empty错误原因及解决方法
php提示错误:Illegal offset type in XXX,导致这个错误的原因是不能使用实例化的对象来作为数组的索引,请检查数组变量的键名是否使用了实例化的对象变量或数组。

我遇到的错误就是因为调用本应是条用数组,结果我只填写了实例化对象。这是很低级的错误但是我硬是找了半天。

本应是这样的:
$list['data'][$k]['order_num'] = $orderService ->getExpressNum(['transport_id' =>$v['transport_id']]);
错误的:
$list['data'][$k]['order_num'] = $orderService ->getExpressNum($v['transport_id']]);

下面是我查询时发现的另一个错误这里也记下来

//格式化数据,调整类型和级别数据显示。$data为2维数组。

private function formatact($data){
  if(is_array($data)){
     $all = Config::get('ACTIVITY_LEVEL_LIST');
     $atl = Config::get('ACTIVITY_TYPE_LIST');
     foreach($data as $d => $v){
       $data[$d]['level'] = isset($all[$v])?$all[$v]:'数据转换异常';
       //错误写法,其中$all[$v]中的$v是一个一维数组。
       $data[$d]['type_id'] = isset($atl[$v['type_id']])?$atl[$v['type_id']]:'数据转换异常';
       //正确写法,调用$all[$v['type_id']]调用$v中的具体键名的值。
     }
     return $data;
  }else{
     return null;
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值