【发布时间】:2013-02-03 12:43:21
【问题描述】:
我已经从 SPL 迭代器扩展和实现了。
但如果我想使用它,我应该在foreach 上使用它。
我尝试在while 中使用它,如下所示:
$news = new testClass();
while( $row = $news )
echo $row["name"];
它将创建一个无限循环!
但是对于foreach,它工作正常!
这是我班上的佼佼者:
class testClass implements \Iterator
错在哪里?
【问题讨论】:
-
使用
while循环更像是一种C 风格的迭代器,而不是您所想的迭代器。您需要实现Iterator's methods,然后它应该与 foreach 循环一起工作。 -
您是否尝试迭代
$news对象中的公共属性?