您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 Iterator遍历对象 php进阶
上善若水2022-01-02 15:56:28【PHP框架交流】 2073人已围观
简介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、 父亲跟儿子说:儿子,你长大了,应该独立了。 儿子:如果我不独立呢? 父亲:不独立我就强迫你独立。 儿子:呜呜,爸爸你太残忍了,强迫我独立就是砍掉我一只脚的意思么? 父亲:…… 2、 A:我从来不吃鸭舌头,从鸭嘴里取出来的东西,多脏啊! B:那你吃什么呢? A:我要吃炒鸡蛋。 3、 A:中国有没有像印度那种演着演着就突然唱起来,然后里面的人又都像开挂一样厉害的影视作品? B:有啊,《新白娘子传奇》。 4、 快过年了,买了块粉土,想着把家里的墙都粉刷一遍,不料还差一点不够了。 老公:老婆, -
冠状病毒科普 什么是冠状病毒
冠状病毒在分类层级上是科,冠状病毒科拉丁文名Coronaviridae, 简称CoV,因为外形呈球状,具有花瓣状的刺突,因此根据其形状,国际病毒命名委员会在1975年正式命名为“冠状病毒科”。目前已知 -
git 切换仓库地址 码云更换仓库源
git 切换仓库地址 码云更换仓库源,在使用git pull 发现仓库代码无法拉取,确认账号密码无误后发现是码云更改了用户名,导致仓库地址也跟着一起改了,需要修改仓库地址.1.查看码云仓库地址 git -
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。