为了账号安全,请及时绑定邮箱和手机立即绑定

Php 迭代器 foreach 对象属性

Php 迭代器 foreach 对象属性

PHP
梦里花落0921 2023-07-30 14:02:29
给定一个类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个赞

当类实现 时Iteratorforeach会迭代它所代表的集合的元素。当类没有实现时Iterator,它会回退到迭代属性。

如果要迭代此类的属性,请将对象转换为数组:

foreach ((array)$obj as $key => $value)
    echo $key, $value;


查看完整回答
反对 回复 2023-07-30
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信