php中的对象迭代是什么
有人能解释什么是对象迭代以及这段代码是如何工作的吗php中的对象迭代是什么,php,iterator,spl,Php,Iterator,Spl,有人能解释什么是对象迭代以及这段代码是如何工作的吗 class MyIterator implements Iterator{ private $var = array(); public function __construct($array){ if (is_array($array)) { $this->var = $array; } } public function rewind() { echo
class MyIterator implements Iterator{
private $var = array();
public function __construct($array){
if (is_array($array)) {
$this->var = $array;
}
}
public function rewind() {
echo "rewinding
";
reset($this->var);
}
public function key() {
$var = key($this->var);
echo "key: $var
";
return $var;
}
public function next() {
$var = next($this->var);
echo "next: $var
";
return $var;
}
public function valid() {
$var = $this->current() !== false;
echo "valid: {$var}
";
return $var;
}
public function current() {
$var = current($this->var);
echo "current: $var
";
return $var;
}
}
$values = array(1,2,3);
$it = new MyIterator($values);
foreach ($it as $a => $b) {
print "$a: $b
";
}
类MyIterator实现了迭代器{
private$var=array();
公共函数构造($array){
if(is_数组($array)){
$this->var=$array;
}
}
公共函数倒带(){
回音“倒带
”;
重置($this->var);
}
公共函数密钥(){
$var=key($this->var);
echo“键:$var
”;
返回$var;
}
公共职能下一步(){
$var=next($this->var);
回显“下一步:$var
”;
返回$var;
}
公共函数有效(){
$var=$this->current()!==false;
echo“valid:{$var}
”;
返回$var;
}
公共职能(当前){
$var=当前($this->var);
回声“电流:$var
”;
返回$var;
}
}
$values=数组(1,2,3);
$it=新的MyIterator($value);
foreach($a=>$b){
打印“$a:$b
”;
}
该接口可能受Java迭代器的启发。它提供了一个通用接口,可以使用foreach
构造连续迭代项目列表
您的代码定义了一个实现此接口的类。它基本上提供了与阵列本机支持的功能相同的功能,但添加了一些echo语句
为什么要使用迭代器
迭代器的优点是它提供了一个高级抽象接口,因此调用它的代码不需要太担心正在发生的事情。同时,它允许您分块处理大型数据源(从数据库中获取行,从文件中读取行),而无需立即将所有内容加载到内存中。好问题,代码来自正式的php.net手册,我也不知道。作者不想解释它的作用和原因。