您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 Iterator遍历对象 php进阶
上善若水2022-01-02 15:56:28【PHP框架交流】 2212人已围观
简介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.我一手扛着收音机放着此歌,蹬着三轮车就往高速 -
精品笑话十五则,总有一则逗乐您
1、刚毕业的时候在一家电子厂打エ,同宿舍有一姐妹老喜欢吃别人的东西。只要是吃的东西放桌上,一转身准没了。有次我买了几个苹果,想想放着不安全,我每个苹果都咬了一口后出去。回来我发现……整颗苹果只剩下我咬的那一小块了…… 2、我侄女是幼儿园老师,她女儿归她教,别的孩子在幼儿园里哭找妈妈,小家伙倒好人家哭天喊地的找爸爸。 3、最近每天陪领导下乡,一个礼拜下来,晒的黑炭似的才回来。刚进家,6岁的儿子看 -
开心一刻:笑死人不偿命的极品笑话
1、今天打雷,雷声有点点大,老公上班不在家。正想着是不是发条短信去装下可怜,结果老公电话来了,正高兴原来那货这么关心我,结果他说:把家里电插头拔了。我问他还有别的事没?他说没了。我说你咋不关心我啊,打雷呐!!!他哦了声说:那你小心点,别被雷劈了…被雷劈!!!我恨 2、今天去剪了个头发,后来理发师没要钱。 3、有个死党叫刘查向,,今天才知道她妈姓向,当我听到他妈姓向时,我笑喷了,呵呵,,他爸挺幽 -
PHP8.1新特性 初始化器
初始化器新版写法 class Service { private Logger $logger; public function __construct( Logg