Php 警告:非法字符串偏移量';根';

Php 警告:非法字符串偏移量';根';,php,Php,我在php中遇到了这个错误。错误为“警告:非法字符串偏移量'root'”。这是行中的实际代码 $root = $atts['root']; 任何帮助都将不胜感激在PHP中,$var[$index]语法既适用于数组也适用于字符串。对于数组,这将返回数组中索引$index处的元素$var($index可以是字符串,意思是$var是关联数组,也可以是整数,意思是普通数组(我肯定有更好的术语,但我不熟悉) 对于字符串,$index(在本例中称为偏移量)只能是整数,并且将返回字符串中$index位置处的

我在php中遇到了这个错误。错误为“警告:非法字符串偏移量'root'”。这是行中的实际代码

$root = $atts['root'];

任何帮助都将不胜感激

在PHP中,
$var[$index]
语法既适用于数组也适用于字符串。对于数组,这将返回数组中索引
$index
处的元素
$var
$index
可以是字符串,意思是
$var
是关联数组,也可以是整数,意思是普通数组(我肯定有更好的术语,但我不熟悉)

对于字符串,
$index
(在本例中称为偏移量)只能是整数,并且将返回字符串中
$index
位置处的字符。因此,如果您有
$var='这是我的字符串';
,则
$var[2]
将返回“this”中的字母“i”(请记住,数组和字符串的索引都从0开始)

因此,在本例中,很明显,您希望
$atts
是一个数组,但实际上它是一个字符串。因此,您无法从另一个字符串(“根”)检索索引,而只是一个整数。因此,您得到的错误与我上面所写的差不多。使用字符串作为索引或偏移量作为另一个字符串是非法的(您只能使用整数)


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

您可以尝试运行
var\u dump($atts)
并让我们知道输出是什么。
print\r($atts)
要查看$atts的完整数组,我们现在知道的是$atts是一个字符串,而不是您所期望的数组。如果您想从我们这里得到更具体的答案,您需要发布更多的代码。好的,我尝试运行了“$root=var\u dump($atts)['root'”;“这次没有警告错误,而是字符串(0)”#