Php 无法将book类型的对象用作数组

Php 无法将book类型的对象用作数组,php,arrays,oop,Php,Arrays,Oop,我有一个名为“book”的PHP类:我创建了它的各种实例,并将它们放在一个名为$books的数组中。我知道这不是PHP中最好的方法,但我已经学习了JavaScript中的OOP,我通常就是这样做的 $books的变量转储将产生 array(2) { [0]=> object(book)#3 (6) { // some properties } [1]=> object(book)#4 (6) { // some properties } } 我总是能够使用foreach($book

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

$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\u push()
添加
$books
是数组而不是对象:PHP疯狂吗?

你确定
$books
是数组吗?看起来您正在尝试迭代一个book对象


PHP中没有
$books.length
符号。如果有任何内容,它应该是
$books->length
,但由于
$books
是一个数组,所以它是
计数($books)
。与JavaScript不同,数组在PHP中不是对象。

当您试图迭代一个Book对象而不是Book对象数组时,请仔细检查数组和变量;可能您正在将一个对象分配给数组变量,而不是将其附加到数组中

您是对的-我在发布时编辑了这个问题。count($books)运行良好,我相信这是一个数组,正如您从var_dump中看到的。太好了,然后查看我的帖子作为答案:D致意,祝您好运