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

ArrayObject 的 getiteratpr方法得到的迭代器与 ArrayIterator实例化后的迭代器有什么不一样么???

16行 $obj = new ArrayObject($fruits)  然后 $it = $obj->getiterator();

为什么不直接$it = new ArrayIterator;

还有个问题,翻看php手册发现ArrayObject的getiterator方法是个静态方法,而用静态方法调用时报错,用"->"调用却可以。有点费解

正在回答

1 回答

第一个问题:当你想多次遍历相同数组时你需要实例化ArrayObject,然后让这个实例创建一个ArrayIteratror实例 ,然后使用foreach或者 手动调用getIterator()方法

第二个问题:ArrayObject的getiterator也不是一个静态方法,这个你当ArrayObject::getiterator();这样使用的时候就会报错,错误:getiterator非静态方法数组对象


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

ArrayObject 的 getiteratpr方法得到的迭代器与 ArrayIterator实例化后的迭代器有什么不一样么???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信