本文實例講述了PHP迭代器和迭代的實現與使用方法。分享給大家供大家參考,具體如下:
PHP的html' target='_blank'>面向對象引擎提供了一個非常聰明的特性,就是,可以使用foreach()方法通過循環方式取出一個對象的所有屬性,就像數組方式一樣,代碼如下:
class Myclass{ public $a = php public $b = onethink public $c = thinkphp $myclass = new Myclass();//用foreach()將對象的屬性循環出來foreach($myclass as $key. = .$val){ echo $ .$key. = .$val. br/ $a = php $b = onethink $c = thinkphp*/
如果需要實現更加復雜的行為,可以通過一個iterator(迭代器)來實現
//迭代器接口interface MyIterator{ //函數將內部指針設置回數據開始處 function rewind(); //函數將判斷數據指針的當前位置是否還存在更多數據 function valid(); //函數將返回數據指針的值 function key(); //函數將返回將返回當前數據指針的值 function value(); //函數在數據中移動數據指針的位置 function next();//迭代器類class ObjectIterator implements MyIterator{ private $obj;//對象 private $count;//數據元素的數量 private $current;//當前指針 function __construct($obj){ $this- obj = $obj; $this- count = count($this- obj- data); function rewind(){ $this- current = 0; function valid(){ return $this- current $this- count; function key(){ return $this- current; function value(){ return $this- obj- data[$this- current]; function next(){ $this- current++;interface MyAggregate{ //獲取迭代器 function getIterator();class MyObject implements MyAggregate{ public $data = array(); function __construct($in){ $this- data = $in; function getIterator(){ return new ObjectIterator($this);//迭代器的用法$arr = array(2,4,6,8,10);$myobject = new MyObject($arr);$myiterator = $myobject- getIterator();for($myiterator- rewind();$myiterator- valid();$myiterator- next()){ $key = $myiterator- key(); $value = $myiterator- value(); echo $key. = .$value; echo br/ 0= 2 1= 4 2= 6 3= 8 4= 10*/您可能感興趣的文章:
PHP操作MongoDB實現增刪改查功能php技巧
PHP操作Redis常用技巧總結php技巧
原生php實現excel文件讀寫的方法分析php技巧
以上就是PHP迭代器和迭代的實現與使用方法分析php技巧的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答