Warning: Illegal string offset 'account' in 解决方法

if ( (!empty($_GPC['uniacid_source']) && $_GPC['uniacid_source'] == 'wxapp') ) {
   $uniacid = intval($_GPC['uniacid']);
   if (!empty($uniacid)) {
      isetcookie('__uniacid', $uniacid, 7 * 86400);
      $cache_lastaccount['account'] = $uniacid;
      cache_write($cache_key, $cache_lastaccount);
   }
} else {
   $uniacid = $cache_lastaccount['account'];
}


报错的原因是$cache_lastaccount数组里面有空数组,空数组里没有account这个字段。最终解决办法是:
只需要把$uniacid = $cache_lastaccount['account'];修改成:$uniacid = isset($cache_lastaccount['account']) ?$cache_lastaccount['account'] : '';
还有一个报错的原因是数据库储存的内容不正确,可以删除该字段。

你可能感兴趣的:(PHP)