警告:非法字符串偏移'root'

时间:2013-04-30 04:49:36

标签: php

我在使用php时遇到此错误。错误是“警告:非法字符串偏移'root'”这是行上的实际代码

$root = $atts['root'];

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

在PHP中,$var[$index]语法适用于数组字符串。对于数组,这将返回数组$index中索引$var处的元素($index可以是字符串,意味着$var是关联数组或整数,意思是它是一个正常的数组(我确定它有一个更好的术语,但我不熟悉)。

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

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

如果没有看到更多的代码,我将无法告诉为什么$atts是一个字符串而不是您期望的数组,但这有助于您理解为什么会收到该错误。