php的foreach循环如何在Laravel的Eloquent / Collection对象上运行?

时间:2014-06-17 19:42:30

标签: php laravel

我刚刚发现我可以遍历从Model :: where()返回的$ collections对象,即使它不是数组。做一些谷歌搜索显示循环通过一个对象遍历所有对象的参数,这不是集合对象发生的事情。他们究竟如何在Laravel做到这一点?这个黑魔法是什么?

我想也许更普遍的是,如何设置一个在foreach()内部兼容的对象?

2 个答案:

答案 0 :(得分:2)

如果您的对象实现特定的接口或扩展特定的类,PHP知道如何迭代它: http://www.php.net//manual/en/language.oop5.iterations.php

答案 1 :(得分:1)

这里当然没有任何魔法,你可以在课堂上自己动手。你唯一需要做的就是实现IteratorAggregate接口,从那时起你的类可以在foreach循环中使用。