我有一个名为“book”的PHP类:我已经创建了它的各种实例并将它们放在一个名为$books
的数组中。我知道这不是PHP中最好的方法,但我在JavaScript中学习了OOP,这就是我通常的做法。
$books
的var_dump将产生
array(2) { [0]=> object(book)#3 (6) { // some properties }
[1]=> object(book)#4 (6) { // some properties } }
我总是能够使用foreach($books as $book)
迭代对象数组,但这次我收到了错误:
不能使用类型书的对象作为数组
Var转储说它是一个数组:错误报告说是一个对象。这是为什么?
$books
是使用$books = array();
创建的,其中的对象添加了array_push()
。 $books
是一个数组,而不是一个对象:PHP是疯了吗?
答案 0 :(得分:1)
你确定$books
是一个数组吗?看起来您正在尝试迭代 book 对象。
PHP中没有$books.length
符号。如果它应该是$books->length
,但由于$books
是一个数组,它是count($books)
。与JavaScript不同,数组不是PHP中的对象。
答案 1 :(得分:1)
当您尝试迭代Book对象而不是Book对象数组时,您的问题看起来很好,请检查您的数组和变量;可能你正在为数组var分配一个对象,而不是将它附加到你的数组