Annotation of embedaddon/php/tests/classes/iterators_007.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ZE2 iterators and exceptions
                      3: --FILE--
                      4: <?php
                      5: class Test implements Iterator
                      6: {
                      7:        public $arr = array(1, 2, 3);
                      8:        public $x = 0;
                      9:        
                     10:        public function rewind()    { if ($this->x == 0) throw new Exception(__METHOD__); reset($this->arr); }
                     11:        public function current()   { if ($this->x == 1) throw new Exception(__METHOD__); return current($this->arr); }
                     12:        public function key()       { if ($this->x == 2) throw new Exception(__METHOD__); return key($this->arr); }
                     13:        public function next()      { if ($this->x == 3) throw new Exception(__METHOD__); next($this->arr); }
                     14:        public function valid()     { if ($this->x == 4) throw new Exception(__METHOD__); return (key($this->arr) !== NULL); }
                     15: }
                     16: 
                     17: $t = new Test();
                     18: 
                     19: while($t->x < 5)
                     20: {
                     21:        try
                     22:        {
                     23:            foreach($t as $k => $v)
                     24:            {
                     25:                echo "Current\n";
                     26:            }
                     27:        }
                     28:        catch(Exception $e)
                     29:        {
                     30:            echo "Caught in " . $e->getMessage() . "()\n";
                     31:        }
                     32:        $t->x++;
                     33: }
                     34: ?>
                     35: ===DONE===
                     36: --EXPECT--
                     37: Caught in Test::rewind()
                     38: Caught in Test::current()
                     39: Caught in Test::key()
                     40: Current
                     41: Caught in Test::next()
                     42: Caught in Test::valid()
                     43: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>