2013-06-05 69 views
1

我有一個名爲「book」的PHP類:我已經創建了它的各種實例並將它們放入一個名爲$books的數組中。我知道這不是PHP中的最佳方法,但我已經在JavaScript中學習了OOP,這就是我通常這樣做的方式。不能使用類型爲book的對象作爲數組

的var_dump $books會產生

array(2) { [0]=> object(book)#3 (6) { // some properties } 
[1]=> object(book)#4 (6) { // some properties } } 

我一直能夠對象的數組遍歷與foreach($books as $book)但這次我得到的錯誤:

Cannot use object of type book as array

瓦爾轉儲說,這是一個數組:錯誤報告說是一個對象。爲什麼是這樣?

$books使用$books = array();創建,其中的對象添加了array_push()$books是一個數組而不是一個對象:PHP瘋了嗎?

回答

1

您的問題看起來像您試圖迭代Book對象而不是Book對象數組,請檢查您的數組和變量;可能你正在分配一個對象到你的數組var,而不是將它追加到你的數組

+0

解決了 - 這有點像我在做...謝謝! – Saturnix

+0

太棒了,然後檢查我的帖子作爲答案:D最好的問候和祝你好運 – Carlos

1

你確定$books是一個數組嗎?它看起來像你試圖遍歷一個書籍對象。

PHP中沒有$books.length表示法。如果有的話,它應該是$books->length,但由於$books是一個數組,它是count($books)。與JavaScript不同,數組不是JavaScript中的對象。

+0

你是對的 - 我在發佈時編輯了這個問題。計數($書)工作正常,我敢肯定它是一個數組,你可以從var_dump中看到。 – Saturnix

相關問題