ecshop 报错 Warning: Illegal string offset 'cat_name' in upload\admin\navigator.php on line 382
4个回答
展开全部
我也出现了这个原因,也以为是取不到键名对应的键值,原因为是因为不存在键名,后来多次尝试发现只报错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
最后在网上找啊找,在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
展开全部
今天刚遇到这个问题,意思是它觉得那个数组是个字符串,而字符串的的索引必需是 int 类型,解决方法是加个判断 is_array($tmp);
注:
$str = 'abc';
echo $str['2']; // 会输出 'b'
echo $str['hahaha']; // 会输出 Illegal string offset 'hahaha'
注:
$str = 'abc';
echo $str['2']; // 会输出 'b'
echo $str['hahaha']; // 会输出 Illegal string offset 'hahaha'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是你的代码包含特殊字符,是你的数据有问题。
出现这种情况是你使用了数组,但是对应的键值不存在,那么你非要从数组里面取一个不存在的数据就会出现上面的情况。
如:
$arr = array();
这个时候你只有一个空数组,但是你非要:
$name = $arr['name'];
这个时候就会出现你遇到的这种情况。
造成这种情况的原因是:
你的数据源没有对应的数据;
你的代码逻辑不严。
你检查下你的数据源,或者改下代码,提供一些默认值就可以了,以上面的例子为例,如:
$name = isset($arr['name']) ? $arr['name'] : 'smith';
这是一些很基本的错误,应该很容易发现的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你添加的东西包含非法字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询