給定一個(gè)類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 并強(qiáng)制我為此目的使用其抽象函數(shù)?
1 回答

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