我在使用php时遇到此错误。错误是“警告:非法字符串偏移'root'”这是行上的实际代码
$root = $atts['root'];
任何帮助将不胜感激
答案 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
是一个字符串而不是您期望的数组,但这有助于您理解为什么会收到该错误。