• 追加された行はこの色です。
  • 削除された行はこの色です。
* IteratorAggregateインターフェイス [#u28a0041]
* Iterator(Aggregate)インターフェイス [#u28a0041]

 <?php
 class MyArray implements IteratorAggregate {
  
     private $list = array(1,2,3);
     private $array = array(1,2,3);
 
     public function __construct() {
         $this->list[] = 10;
         $this->array[] = 10;
     }
 
     public function getIterator() {
         return new ArrayIterator($this->list);
         return new MyIterator($this->array);
     }
 }
 
 class MyIterator implements Iterator {
     private $position = 0;
 
     public function __construct($array) {
         $this->array = $array;
         $this->position = 0;
     }
 
     function rewind() {
         $this->position = 0;
     }
 
     function current() {
         return "VAL: " . $this->array[$this->position];
     }
 
     function key() {
         return "KEY: " . $this->position;
     }
 
     function next() {
         ++$this->position;
     }
 
     function valid() {
         return isset($this->array[$this->position]);
     }
 }

 $obj = new MyArray;
  
 foreach($obj as $key => $val) {
     print "$key : $val\n";
     print "$key , $val\n";
 }

** 参考 [#pf68bd5c]
- Iterator インターフェイス http://www.php.net/manual/ja/class.iterator.php
- IteratorAggregate インターフェイス http://www.php.net/manual/ja/class.iteratoraggregate.php


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS