PHP预定义接口之Iterator(迭代器)接口演示
主要是用于遍历类中未公开的数组数据,这个接口需要5个方法,具体看下面的demo
<?php
class A implements iterator
{
protected $link = [
"brand"=>"huawei",
"goodsName"=>"p20",
"price"=>"3500",
"channel"=>"4G",
];
// Iterator::current — 返回当前元素
// Iterator::key — 返回当前元素的键
// Iterator::next — 向前移动到下一个元素
// Iterator::rewind — 返回到迭代器的第一个元素
// Iterator::valid — 检查当前位置是否有效
public function current()
{
// 返回当前元素的值
return current($this->link);
}
public function key()
{
// 获取键值
return key($this->link);
}
public function next()
{
// 指针下移
return next($this->link);
}
public function rewind()
{
// 重置指针
return reset($this->link);
}
public function valid()
{
// 判断有没有值
return !is_null(key($this->link));
}
}
$obj = new A();
foreach ($obj as $key => $value) {
echo "$key=>$value","<br>";
}