php中的iterator迭代器(遍歷)
阿新 • • 發佈:2019-01-23
遍歷主要用於遍歷元素的操作,如對陣列中的每一個元素都要操作,這個情況下我們就可以使用迭代器
interface Demo//這裡描述了提供給開發者的介面
{
public function fn1();
public function fn2();
public function fn3();
}
interface Demo2 extends Demo//這一步是為了隱藏介面的具體實現
{
public function fn4();
}
class Demo3 implements Demo//使用者可以自己呼叫這些方法來實現對這些物件的處理
{
public function fn4()
{
echo 'function 2';
}
public function fn1(){}
public function fn2(){}
public function fn3(){}
}
$demo3 = new Demo3();
//$demo3->fn4()
我的認識是程式裡面提供介面,而且我們可以自己定義演算法來實現,所以有人說用得好可以提升效率
上面的理解可能不全,我把向大牛請教的理解貼出來,其實也是簡單的東西
<span style="font-size:18px;color:#cc0000;"><?php class myIterator implements Iterator { public $position = 0 ; public $arr = array('one','two','three','four','five','six'); public function __construct() { $this->position = 0; } public function rewind() { var_dump(__METHOD__); $this->position = 0 ; } public function current() { var_dump(__METHOD__); return $this->arr[$this->position] ; } public function key() { var_dump(__METHOD__); return $this->position; } public function next() { var_dump(__METHOD__); ++$this->position; } public function valid() { var_dump(__METHOD__); return isset($this->arr[$this->position]); } } $it = new myIterator; foreach($it as $key=>$value) { var_dump($key,$value); echo "\n"; }</span>