2013-04-30 118 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是一個字符串,而不是像你期望的那樣是一個數組,但是這將有助於你理解爲什麼你會得到這個錯誤。

相關問題