1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
--TEST--
SPL: Iterator: Overloaded object and destruction
--FILE--
<?php
class Test implements Iterator {
function foo() {
echo __METHOD__ . "()\n";
}
function rewind(): void {}
function valid(): bool {}
function current(): mixed {}
function key(): mixed {}
function next(): void {}
}
class TestIteratorIterator extends IteratorIterator {
function __destruct() {
echo __METHOD__ . "()\n";
$this->foo();
}
}
$obj = new TestIteratorIterator(new Test);
$obj->foo();
unset($obj);
?>
--EXPECT--
Test::foo()
TestIteratorIterator::__destruct()
Test::foo()
|