您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 Iterator遍历对象 php进阶
上善若水2022-01-02 15:56:28【PHP框架交流】 1613人已围观
简介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)
相关文章
随机图文
-
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
ThinkPHP6上传图片七牛云
ThinkPHP6如何上传图片七牛云,如何上传文件到七牛云对象储存cos,总所周知图片是特别消耗网站带宽的,个人网站将图片上传至七牛云才能显著提升网站的响应速度,手把手交大家如何上配置ThinkPHP -
mysql tinyint(1)tinyint(2)tinyint(3)tinyint(4)区别 详解tinyint()取值范围变化
一直对mysql中的整形存在误区,想当然的认为tinyint(1)的取值范围就是0-1之间,int()后面数字越大取值范围就越大,相当然每次还想想后面数字放多少合适,其实这都存在误区. 首先tinyi -
历年出生人口(1949-2021)
先看一组人口出生数据:2019年:1465万2020:1200万2021年:1062万 1949年:1275万 1950年:1419万 1951年:1349万 1952年:1622万 1953年:1637万 1954年:2232万