--TEST-- SPL: Iterator: Overloaded object and destruction --FILE-- <?php class Test implements Iterator { function foo() { echo __METHOD__ . "()\n"; } function rewind() {} function valid() {} function current() {} function key() {} function next() {} } class TestIteratorIterator extends IteratorIterator { function __destruct() { echo __METHOD__ . "()\n"; $this->foo(); } } $obj = new TestIteratorIterator(new Test); $obj->foo(); unset($obj); ?> ===DONE=== --EXPECT-- Test::foo() TestIteratorIterator::__destruct() Test::foo() ===DONE===