PHP基礎(chǔ)之預(yù)定義接口2——Iterator接口
可在內(nèi)部迭代自己的外部迭代器或類的接口。
接口摘要Iterator extends Traversable { /* 方法 */ abstract public mixed current ( void ) abstract public scalar key ( void ) abstract public void next ( void ) abstract public void rewind ( void ) abstract public boolean valid ( void )}預(yù)定義迭代器
PHP 已經(jīng)提供了一些用于日常任務(wù)的迭代器,如SPL迭代器。
范例Example #1 基本用法
這個(gè)例子展示了使用?foreach?時(shí),迭代器方法的調(diào)用順序。
<?php class myIterator implements Iterator {private $position = 0;private $array = array( 'firstelement', 'secondelement', 'lastelement',);public function __construct() { $this->position = 0;}function rewind() { var_dump(__METHOD__); $this->position = 0;}function current() { var_dump(__METHOD__); return $this->array[$this->position];}function key() { var_dump(__METHOD__); return $this->position;}function next() { var_dump(__METHOD__); ++$this->position;}function valid() { var_dump(__METHOD__); return isset($this->array[$this->position]);} } $it = new myIterator; foreach($it as $key => $value) {var_dump($key, $value);echo 'n'; }?>
以上例程的輸出類似于:
string(18) 'myIterator::rewind'string(17) 'myIterator::valid'string(19) 'myIterator::current'string(15) 'myIterator::key'int(0)string(12) 'firstelement'string(16) 'myIterator::next'string(17) 'myIterator::valid'string(19) 'myIterator::current'string(15) 'myIterator::key'int(1)string(13) 'secondelement'string(16) 'myIterator::next'string(17) 'myIterator::valid'string(19) 'myIterator::current'string(15) 'myIterator::key'int(2)string(11) 'lastelement'string(16) 'myIterator::next'string(17) 'myIterator::valid'方法列表Iterator::current?— 返回當(dāng)前元素Iterator::key?— 返回當(dāng)前元素的鍵Iterator::next?— 向前移動(dòng)到下一個(gè)元素Iterator::rewind?— 返回到迭代器的第一個(gè)元素Iterator::valid?— 檢查當(dāng)前位置是否有效
相關(guān)文章:
1. 解決ajax的delete、put方法接收不到參數(shù)的問題方法2. ASP實(shí)現(xiàn)加法驗(yàn)證碼3. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法4. asp知識(shí)整理筆記4(問答模式)5. java 優(yōu)雅關(guān)閉線程池的方案6. jsp EL表達(dá)式詳解7. 詳解idea中web.xml默認(rèn)版本問題解決8. JSP頁面實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能9. python中sqllite插入numpy數(shù)組到數(shù)據(jù)庫的實(shí)現(xiàn)方法10. IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實(shí)現(xiàn)
