給定一個類class Obj { public $a =1; public $b = 2;}和腳本一樣$obj = new Obj();foreach($obj as $key => $value) echo $key, $value;我可以輕松輸出對象內部的內容,但是如果類是這樣的,為什么它不起作用class SomeClass() implements Iterator {...}Iterator 接口是否禁止我在外部執行 foreach 并強制我為此目的使用其抽象函數?
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
當類實現 時Iterator
,foreach
會迭代它所代表的集合的元素。當類沒有實現時Iterator
,它會回退到迭代屬性。
如果要迭代此類的屬性,請將對象轉換為數組:
foreach ((array)$obj as $key => $value) echo $key, $value;
- 1 回答
- 0 關注
- 146 瀏覽
添加回答
舉報
0/150
提交
取消