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