2014-07-15 61 views
0

Iam新手到php和codeigniter。爲foreach()提供的無效參數php警告

我在PHP的錯誤,

A PHP Error was encountered 

Severity: Warning 

Message: Invalid argument supplied for foreach() 

Filename: controllers/search.php 

Line Number: 44 

44號線是:的foreach($的數據爲$關鍵=> $值)

有一些語法錯誤在這裏, 這裏面的if語句,如果(!empty($ user ['search'])),$ data被正確打印,而在這個if語句中,if(!empty($ data)),$ data不會被打印。任何人都可以幫我解決這個問題。

+0

'消息:爲foreach()提供的無效參數意味着'$ data'不是數組,但不意味着是空的。 – Sal00m

+0

嘗試更改$ data = json_decode($ user ['search']) - > result;到$ data = json_decode($ user ['search'] - > result);看看它是否工作 – Satya

+0

如果我這樣做,它給人的, 一個PHP錯誤遇到 嚴重的錯誤:請注意 消息:試圖讓非對象的屬性 文件名:控制器/ search.php中 行號:41 – user3804042

回答

0

問題是你的循環變量裏沒有任何值($data)。

您可以打印它們的值以檢查變量是否包含值。

+0

一個空數組不會拋出該錯誤。它只是沒有進入循環內部,就這樣。 – Sugar

+0

我想如果你將數組傳遞給foreach(),你應該有這些值.. –

+0

我也認爲最好這樣做,但這不是強制性的,這裏不是問題。而已。 – Sugar

0

替換:

$data = json_decode($user['search'])->result; 

通過:

$data = json_decode($user['search'], true); 

json_decode這樣工作:

var_dump(json_decode($json)); // returns object(stdClass) 
var_dump(json_decode($json, true)); returns array 

你$的數據是一個對象,而嚴格的foreach想要的數組。

相關問題