1. 程式人生 > >php中的iterator迭代器(遍歷)

php中的iterator迭代器(遍歷)

遍歷主要用於遍歷元素的操作,如對陣列中的每一個元素都要操作,這個情況下我們就可以使用迭代器

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>