您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 Iterator遍历对象 php进阶
上善若水2022-01-02 15:56:28【PHP框架交流】 1620人已围观
简介php高级技术把一个对象foreach循环遍历,很多框架中都实现了Iterator 然后就可以foreach去遍历这个对象,下面简单尝试编写一个简单的demo去循环遍历对象. class A impl
php高级技术把一个对象foreach循环遍历,很多框架中都实现了Iterator 然后就可以foreach去遍历这个对象,下面简单尝试编写一个简单的demo去循环遍历对象.
class A implements \Iterator
{
/**
* @var array $data
*/
public $data = [];
public function current()
{
echo __FUNCTION__ . PHP_EOL;
return current($this->data);
}
public function next()
{
echo __FUNCTION__ . PHP_EOL;
next($this->data);
}
public function key()
{
echo __FUNCTION__ . PHP_EOL;
return key($this->data);
}
public function valid()
{
echo __FUNCTION__ . PHP_EOL;
return key($this->data) !== null;
}
public function rewind()
{
echo __FUNCTION__ . PHP_EOL;
reset($this->data);
}
}
$a = new A();
$array = ['ak' => 'a'];
$a->data = $array;
foreach ($a as $k => $v) {
echo 'key:' . $k . ' value:' . $v . PHP_EOL;
}
php文件执行的结果是
rewind
valid
current
key
key:ak value:a
next
valid
一个简单的demo就可以实现遍历对象,当然很多框架实现方式都是定义一个key将当前和一个value然后去实现
/**
* @var mixed the value for the current iteration
*/
private $_value;
/**
* @var string|int the key for the current iteration
*/
private $_key;
具体实现看大家实现方式.
如果大家看到一个对象进行foreach去迭代,那就只需要去实现这一个方法就行.
很赞哦! (1)
相关文章
随机图文
-
10个笑死人不偿命的笑话,发给你,足以让你笑着过周末了!
1.妻子想让老公早回家,于是规定:晚于23点回家就锁门。第一周奏效,第二周老公又晚归,老婆按制度把门锁了,于是老公干脆不回家了。 老婆郁闷,后经高人指点,修改规定:23点前不回家,我就开着门睡觉。老公大惊,从此准时回家。 可见制度的精髓不在于强制,而在于对被执行者利益的拉动。 2.小鸡问母鸡:可否不用下蛋,带我出去玩啊?母鸡道:不行,我要工作! 是因为你创造价值,淘汰是因为你失去价值。过去 -
js中使用 encodeURI "#"井号出错 #号后参数被截取
js中使用 encodeURI将请求参数转码试,,#井号出错,#后的字符串不能正常进行转码,后台无法正确处理参数 解决方法:将encodeURI 替换成encodeURIComponent函数即可. -
centos查看jenkins的admin初始密码
centos查看jenkins的admin初始密码,我们用yum安装成功后,首次会提示密码的位置,以解锁jenkins,但是如果你没有没有记住密码,下次登录又要回来找密码。jenkins默认密码的 位 -
让人瞬间爆笑的笑话精选,520没有准备礼物的,就讲个笑话哄哄吧
1、那时候十二三岁我都懂了,下课时候来的,流了很多血,我一点都不慌,倒是我的同学们很害怕,我费了大半天给她们解释什么是生理期,什么是大姨妈,直到老师来了,对我说,男孩子没有这些东西,让我赶紧去医院。 2、初中的时候刚带隐形眼镜,回到家给奶奶说戴隐形眼镜了。奶奶问我什么是隐形眼镜,我用小镊子夹起来给奶奶看,奶奶说:还真是隐形的呢。奶奶走出屋后我发现,没夹起来!!! 3、和朋友去吃小龙虾, 隔壁桌