xref: /PHP-7.3/ext/spl/tests/iterator_068.phpt (revision 610c7fbe)
1--TEST--
2SPL: Iterator: Overloaded object and destruction
3--FILE--
4<?php
5
6class Test implements Iterator {
7	function foo() {
8		echo __METHOD__ . "()\n";
9	}
10	function rewind() {}
11	function valid() {}
12	function current() {}
13	function key() {}
14	function next() {}
15}
16
17class TestIteratorIterator extends IteratorIterator {
18	function __destruct() {
19		echo __METHOD__ . "()\n";
20		$this->foo();
21	}
22}
23
24$obj = new TestIteratorIterator(new Test);
25$obj->foo();
26unset($obj);
27
28?>
29===DONE===
30--EXPECT--
31Test::foo()
32TestIteratorIterator::__destruct()
33Test::foo()
34===DONE===
35