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

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