您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 Iterator遍历对象 php进阶
上善若水2022-01-02 15:56:28【PHP框架交流】 2124人已围观
简介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)
相关文章
随机图文
-
让人捧腹大笑的笑话,专治各种不开心
1.本想对男神来个回眸一笑,可未曾料到天太冷,笑出了一个鼻涕泡儿。 2.每次别人问我路我都瞎指的,第一是因为我根本不认路,第二是为了给世人一个教训:不要随便相信长得好看的人。 3.高中老师:知不知道现在猪肉为什么这么贵?学生:不知道。老师:猪都坐到这里来了,能不贵吗? 4.最近出门不要穿裙子,容易被撩,天是好天,风不正经。 5.司机眼里只有两种人,比自己开的快的是傻逼,比自己开得慢的是菜鸟 -
笑话几则:哄女孩开心的最佳方式,你知道么
1,老婆买了条狗,没事干就拿着人民币让狗闻。我感觉很奇怪,就问:老婆,你这是干嘛,让狗去给你大马路上捡钱?老婆神秘的一笑:“以后你就知道了!”没过几天,我的私房钱不见了,不说了,说多了都是泪。。。2,刚老婆妇儿拿圆珠笔不停的捣我的头,我说:别捣了,老是捣一个地方疼。老婆一巴掌过来:你也知道老是捣一个地方疼?3,千年后,在某山里住着一位修道千年的老神仙。某天,他徒弟突然问他:师傅,是什么让你 -
开怀一笑,让你开心的幽默故事三则
1.信不信由你 现在让骗子闹的人们对任何事情都不敢轻信,真是多次被忽悠,遇事要三思。如果拿着一瓶矿泉水告诉你,这是某某大师施过法术的,可以益寿延年,你肯定不信,如果说这瓶水经过高科技纳米技术处理,又由美国科学院认证,你八成就信了。 你爱人买了件连衣裙,大家都说她穿上真好看,她不一定信,如果有一个说她穿上不好看,她肯定信了。 明星访谈,说他们夫妻如何相亲相爱,你大概不太相信,如果有人说他们俩闹 -
shiro 退出 设置跳转页面
shiro 只带过滤器已经实现了退出功能,我们只需配置下退出后重定向到登录页面即可,而且我们需要写实现退出的控制器方法. @Bean public ShiroFilterFactory