您现在的位置是:首页 > PHP框架交流PHP框架交流
php把对象foreach 循环 Iterator遍历对象 php进阶
上善若水2022-01-02 15:56:28【PHP框架交流】
2325人已围观
简介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)
相关文章
随机图文
springboot博客 mysql数据库表建立
由于个人博客比较简单,前期仅快速建立几张核心的博客数据表,然后的不断完善,先完成前端博客的显示,手动插入若干条测试数据,下面来看看数据表吧!也就简单的文章表,分类表等.数据库sql下载地址:码云地址数Spring Data JPA数据操作总结. findById getOne findOne save delete 等
mybatis和SpringDataJPA基本上就是主要的数据库持久层的框架,本篇自己使用jpa的基本增删改查的方式帮助大家快速上手SpringDataJPA.本篇使用的springboot版PHP8.1新特性 First-class 可调用(callable)语法
PHP8.1新特性First-class可调用(callable)语法官方教程https://www.php.net/manual/zh/functions.first_class_callaPHP8.1纯交集类型 纯交集类型使用教程文档
PHP8.1纯交集类型 使用教程,纯交集类型文档https://www.php.net/manual/zh/language.types.declarations.php#language.types