1

我有一个名为“book”的 PHP 类:我制作了它的各种实例并将它们放在一个名为$books. 我知道这不是 PHP 中最好的方法,但我已经在 J​​avaScript 中学习了 OOP,这就是我通常这样做的方式。

var_dump of$books会产生

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

我一直能够迭代对象数组,foreach($books as $book)但这次我得到了错误:

不能将 book 类型的对象用作数组

var dump 说它是一个数组:错误报告说它是一个对象。为什么是这样?

$books用 .创建,其中的$books = array();对象用 . 添加array_push()$books是数组而不是对象:PHP 疯了吗?

4

2 回答 2

1

你确定$books是数组吗?看起来您正在尝试迭代书籍对象。

PHP中没有$books.length符号。如果有的话,它应该是$books->length,但因为$books它是一个数组,所以它是 count($books). 与 JavaScript 不同,数组不是 PHP 中的对象。

于 2013-06-05T17:07:04.800 回答
1

您的问题看起来像您尝试迭代 Book 对象而不是 Book 对象数组,请检查您的数组和变量;可能您正在将一个对象分配给您的数组 var,而不是将其附加到您的数组

于 2013-06-05T17:10:08.927 回答