diff options
Diffstat (limited to 'ext/spl/tests/iterator_046.phpt')
| -rw-r--r-- | ext/spl/tests/iterator_046.phpt | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ext/spl/tests/iterator_046.phpt b/ext/spl/tests/iterator_046.phpt new file mode 100644 index 0000000..f57415a --- /dev/null +++ b/ext/spl/tests/iterator_046.phpt @@ -0,0 +1,51 @@ +--TEST-- +SPL: CachingIterator and __toString using bypassed string keys +--FILE-- +<?php + +class MyFoo +{ + function __toString() + { + return 'foo'; + } +} + +class MyCachingIterator extends CachingIterator +{ + function __construct(Iterator $it, $flags = 0) + { + parent::__construct($it, $flags); + } + + function fill() + { + echo __METHOD__ . "()\n"; + foreach($this as $v) ; + } + + function show() + { + echo __METHOD__ . "()\n"; + foreach($this as $v) + { + var_dump((string)$this); + } + } +} + +$it = new MyCachingIterator(new ArrayIterator(array(0, 'foo'=>1, 'bar'=>2)), CachingIterator::TOSTRING_USE_KEY); + +$it->fill(); +$it->show(); + +?> +===DONE=== +<?php exit(0); ?> +--EXPECTF-- +MyCachingIterator::fill() +MyCachingIterator::show() +string(1) "0" +string(3) "foo" +string(3) "bar" +===DONE=== |
