File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
tests /
lang /
foreachLoopIteratorAggregate.004.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: --TEST--
2: Duplicate of zend test tests/classes/iterators_002.phpt without expected output from destructor
3: --FILE--
4: <?php
5: class c_iter implements Iterator {
6:
7: private $obj;
8: private $num = 0;
9:
10: function __construct($obj) {
11: echo __METHOD__ . "\n";
12: $this->obj = $obj;
13: }
14: function rewind() {
15: echo __METHOD__ . "\n";
16: $this->num = 0;
17: }
18: function valid() {
19: $more = $this->num < $this->obj->max;
20: echo __METHOD__ . ' = ' .($more ? 'true' : 'false') . "\n";
21: return $more;
22: }
23: function current() {
24: echo __METHOD__ . "\n";
25: return $this->num;
26: }
27: function next() {
28: echo __METHOD__ . "\n";
29: $this->num++;
30: }
31: function key() {
32: echo __METHOD__ . "\n";
33: switch($this->num) {
34: case 0: return "1st";
35: case 1: return "2nd";
36: case 2: return "3rd";
37: default: return "???";
38: }
39: }
40: function __destruct() {
41: }
42: }
43:
44: class c implements IteratorAggregate {
45:
46: public $max = 3;
47:
48: function getIterator() {
49: echo __METHOD__ . "\n";
50: return new c_iter($this);
51: }
52: function __destruct() {
53: }
54: }
55:
56: $t = new c();
57:
58: foreach($t as $k => $v) {
59: foreach($t as $w) {
60: echo "double:$v:$w\n";
61: break;
62: }
63: }
64:
65: unset($t);
66:
67: ?>
68: ===DONE===
69: --EXPECT--
70: c::getIterator
71: c_iter::__construct
72: c_iter::rewind
73: c_iter::valid = true
74: c_iter::current
75: c_iter::key
76: c::getIterator
77: c_iter::__construct
78: c_iter::rewind
79: c_iter::valid = true
80: c_iter::current
81: double:0:0
82: c_iter::next
83: c_iter::valid = true
84: c_iter::current
85: c_iter::key
86: c::getIterator
87: c_iter::__construct
88: c_iter::rewind
89: c_iter::valid = true
90: c_iter::current
91: double:1:0
92: c_iter::next
93: c_iter::valid = true
94: c_iter::current
95: c_iter::key
96: c::getIterator
97: c_iter::__construct
98: c_iter::rewind
99: c_iter::valid = true
100: c_iter::current
101: double:2:0
102: c_iter::next
103: c_iter::valid = false
104: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>