2013-04-30 125 views
0

我有这个错误与PHP。错误是“警告:非法串偏移‘根’”这是上线警告:非法字符串偏移“根”

$root = $atts['root']; 

任何帮助,将不胜感激

+1

你可以试试'var_dump($ atts)'让我们知道输出是什么。 – Dracs 2013-04-30 04:51:32

+1

'print_r($ atts);'查看$ atts的完整数组 – 2013-04-30 04:51:32

+0

现在我们所知道的是,$ atts是一个字符串,而不是您期望的数组。如果您想要我们提供更具体的答案,您需要发布更多代码。 – PleaseStand 2013-04-30 04:52:20

回答

1

在PHP实际的代码中,$var[$index]语法可工作在阵列和与字符串。对于一个数组,这将返回索引$index中索引为$var$index)的元素可以是一个字符串,也就是说$var是一个关联数组或整数,这意味着它是一个正常数组(我确信有一个更好的术语,但我不熟悉)。

一个字符串,$index(称为在这种情况下偏移)只能是一个整数,并将该字符串在$index位置返回的字符。因此,如果你有$var = 'this is my string';,那么$var[2]会从“this”返回字母“i”(请记住,对于数组和字符串,从0开始的indeces始于0)

所以在这种情况下,很显然你期望$atts是一个数组,但它实际上是一个字符串。因此,您无法从另一个字符串('root')检索索引,而只能检索一个整数。出于这个原因,你得到的错误,这几乎总结了我上面写的东西。对另一个字符串使用字符串作为索引或偏移量是非法的(只能使用整数)。

没有看到更多的代码,我无法分辨为什么$atts是一个字符串,而不是像你期望的那样是一个数组,但是这将有助于你理解为什么你会得到这个错误。

相关问题