Annotation of embedaddon/php/tests/lang/foreachLoopIteratorAggregate.002.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: IteratorAggregate::getIterator bad return type
3: --FILE--
4: <?php
5:
6: class bad1 implements IteratorAggregate {
7: function getIterator() {
8: return null;
9: }
10: }
11:
12: class bad2 implements IteratorAggregate {
13: function getIterator() {
14: return new stdClass;
15: }
16: }
17:
18: class bad3 implements IteratorAggregate {
19: function getIterator() {
20: return 1;
21: }
22: }
23:
24: class bad4 implements IteratorAggregate {
25: function getIterator() {
26: return array(1,2,3);
27: }
28: }
29:
30:
31: function f($className) {
32: try {
33: foreach (new $className as $k=>$v) {
34: echo "$k => $v\n";
35: }
36: } catch (Exception $e) {
37: echo $e->getLine() . ": " . $e->getMessage() ."\n";
38: }
39: }
40:
41: f("bad1");
42: f("bad2");
43: f("bad3");
44: f("bad4");
45:
46: ?>
47: ===DONE===
48: --EXPECTF--
49: 30: Objects returned by bad1::getIterator() must be traversable or implement interface Iterator
50: 30: Objects returned by bad2::getIterator() must be traversable or implement interface Iterator
51: 30: Objects returned by bad3::getIterator() must be traversable or implement interface Iterator
52: 30: Objects returned by bad4::getIterator() must be traversable or implement interface Iterator
53: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>