本文實(shí)例講述了PHP預(yù)定義接口——Iterator用法。分享給大家供大家參考,具體如下:
Iterator(迭代器)接口
可在內(nèi)部迭代自己的外部迭代器或類的接口。
接口摘要
Iterator extends Traversable {
/* 方法 */
abstract public current ( void ) : mixed
abstract public key ( void ) : scalar
abstract public next ( void ) : void
abstract public rewind ( void ) : void
abstract public valid ( void ) : bool
}
例:
?php
class myIterator implements Iterator
{
private $position = 0;
private $array = array(
'first_element',
'second_element',
'last_element',
);
/**
* 重置鍵的位置
*/
public function rewind(): void
{
var_dump(__METHOD__);
$this->position = 0;
}
/**
* 返回當(dāng)前元素
*/
public function current()
{
var_dump(__METHOD__);
return $this->array[$this->position];
}
/**
* 返回當(dāng)前元素的鍵
* @return int
*/
public function key(): int
{
var_dump(__METHOD__);
return $this->position;
}
/**
* 將鍵移動到下一位
*/
public function next(): void
{
var_dump(__METHOD__);
++$this->position;
}
/**
* 判斷鍵所在位置的元素是否存在
* @return bool
*/
public function valid(): bool
{
var_dump(__METHOD__);
return isset($this->array[$this->position]);
}
}
$it = new myIterator;
foreach ($it as $key => $value) {
var_dump($key, $value);
echo "\n";
}
輸出結(jié)果:
string 'myIterator::rewind' (length=18)
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 0
string 'first_element' (length=13)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 1
string 'second_element' (length=14)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 2
string 'last_element' (length=12)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
由結(jié)果可知,當(dāng)類實(shí)現(xiàn)了Iterator接口,實(shí)現(xiàn)改類實(shí)例數(shù)據(jù)集的時候首先會將數(shù)據(jù)集的鍵重置,然后逐步后移,每次都會進(jìn)行然后返回當(dāng)前元素以及當(dāng)前鍵。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP之預(yù)定義接口詳解
- PHP 預(yù)定義變量、魔術(shù)常量和魔術(shù)方法功能與用法小結(jié)
- 不常用但很實(shí)用的PHP預(yù)定義變量分析
- PHP中預(yù)定義的6種接口介紹
- php中常用的預(yù)定義變量小結(jié)
- php學(xué)習(xí)筆記 [預(yù)定義數(shù)組(超全局?jǐn)?shù)組)]
- PHP教程 預(yù)定義變量
- 詳解PHP的7個預(yù)定義接口