您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 IteratorAggregate遍历对象更简洁更简单 php进阶
上善若水2022-01-03 11:15:01【PHP框架交流】 1820人已围观
简介我们知道把一个对象当做数组去循环操作可以直接,实现接口Iterator实现中的current()next()key()valid()rewind(),实际上php提供系统的IteratorAggreg
我们知道把一个对象当做数组去循环操作可以直接,实现接口Iterator实现中的current()next()key()valid()rewind(),实际上php提供系统的IteratorAggregate也能实现相同的功能,而且更加简单.
IteratorAggregate只需要实现一个方法getIterator就可以比较便捷
class myData implements IteratorAggregate
{
public $value ;
public function __construct()
{
$this->value = [11,22,33,44,55];
}
public function getIterator()
{
return new ArrayIterator($this->value);
}
}
$obj = new myData;
foreach ($obj as $key => $value) {
echo $key, ' ', $value;
echo "\n";
}
最后输入结果为:
0 11
1 22
2 33
3 44
4 55
看了下源码,发现yii底层使用的就是实现IteratorAggregate去实现对象的循环调用的,肯定强退这种方式,毕竟简洁.
很赞哦! (2)
相关文章
随机图文
-
fatal: could not read Username for 'https://gitee.com': No such device or address
在测试git拉取代码时fatal:couldnotreadUsernamefor‘https://gitee.com‘:Nosuchdeviceoraddress,采用jenki -
这些哭笑不得的冷笑话,你被哪个逗笑?
1.皮卡丘去找喷火龙借钱,喷火龙不借让他去找杰尼龟,然后杰尼龟说:不借,你是不是以为我只会说杰尼杰尼? 2.我对象说今年过年回家看我父母 象说:不了 3.阿基米德说:给我一个支点,我能用杠杆撬动整个地球! 投资机构:这个三倍杠杆拿去不谢。 第二天,阿基米德发现自己亏了2个地球! 4.“我以前也不懂事,后来被人打了一顿。” “就变懂事了?” “还是不懂事,但不敢嚣张了。” 5.下水 -
10个冷笑话,笑到肚子痛 看一次笑一整天
1.①你不能5分钟不眨眼。②你伸着舌头不能用鼻子呼吸。③你正在尝试第2个④第2个其实是可以的,但你像一条狗。⑤你在笑,因为你被耍了。2.火车上教授与农夫相对而坐。教授说:我出一题你若不知,给我五元;你出一题,我若不知,给你五百元,如何?农夫同意。教授:月亮距地球多远?农夫摇头递给教授五元钱。农夫问:上山三条腿下山四条腿,什么动物?教授苦思无解给五百元。农夫收钱欲睡觉 -
切换php版本执行命令行 不更改环境变量切换php版本执行命令
由于不同的php版本互相不兼容,频繁更换环境变量的path变量过于麻烦,不更改环境变量切换php版本执行命令,直接在php nts 目录下执行php命令方法.当前我有个为php5.3环境的项目与一个p