ecshop 报错 Warning: Illegal string offset 'cat_name' in upload\admin\navigator.php on line 382

自定义导航栏添加导航的时候用的php5.4请告诉修复bug的办法,不要屏蔽错误信息。谢谢... 自定义导航栏 添加导航的时候
用的php5.4请告诉修复bug的办法,不要屏蔽错误信息。谢谢
展开
 我来答
phpfriend
2017-12-05 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:147
采纳率:100%
帮助的人:15.1万
展开全部
我也出现了这个原因,也以为是取不到键名对应的键值,原因为是因为不存在键名,后来多次尝试发现只报错Undefined index: in
最后在网上找啊找,在stackoverflow发现一个同样的答案,解惑了,原因是因为这个取值的变量并不是一个数组,而是一个字符串。
$arr = array();
echo $arr['id'];
报错 Notice: Undefined index: id in XXX.php on line XXX
$str = '';
echo $str['id'];
报错 Warning: Illegal string offset 'id' in XXX.php on line XXX
adi1625
2017-11-24 · TA获得超过135个赞
知道答主
回答量:46
采纳率:0%
帮助的人:7.9万
展开全部
今天刚遇到这个问题,意思是它觉得那个数组是个字符串,而字符串的的索引必需是 int 类型,解决方法是加个判断 is_array($tmp);
注:
$str = 'abc';
echo $str['2']; // 会输出 'b'
echo $str['hahaha']; // 会输出 Illegal string offset 'hahaha'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
is8888
推荐于2017-10-05 · TA获得超过695个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:569万
展开全部

不是你的代码包含特殊字符,是你的数据有问题。

出现这种情况是你使用了数组,但是对应的键值不存在,那么你非要从数组里面取一个不存在的数据就会出现上面的情况。

如:

$arr = array();

这个时候你只有一个空数组,但是你非要:

$name = $arr['name'];

这个时候就会出现你遇到的这种情况。


造成这种情况的原因是:

  1. 你的数据源没有对应的数据;

  2. 你的代码逻辑不严。


你检查下你的数据源,或者改下代码,提供一些默认值就可以了,以上面的例子为例,如:

$name = isset($arr['name']) ? $arr['name'] : 'smith';


这是一些很基本的错误,应该很容易发现的。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
影翼视觉lyl
2015-01-09 · TA获得超过630个赞
知道小有建树答主
回答量:1279
采纳率:50%
帮助的人:679万
展开全部
你添加的东西包含非法字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式