/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/spl/tests/SplObjectStorage/SplObjectStorage_unset.phpt
55 строк
1 KB
Gina Peter Banyard
Move SplObjectStorage test to a folder
18 мар 2024, 02:08
Не верифицирован
18 мар 2024, 02:08
610c7a0
Код
Авторство
О чём код?
--TEST-- SplObjectStorage unset and destructor edge cases --FILE-- <?php class HasDestructor { public function __destruct() { echo "In destructor. Should no longer be accessible in \$s:\n"; var_dump($GLOBALS['s']); throw new RuntimeException("thrown from destructor"); } } $o = new stdClass(); $s = new SplObjectStorage(); $s[$o] = new HasDestructor(); try { unset($s[$o]); } catch (Exception $e) { echo "Caught: {$e->getMessage()}\n"; } var_dump($s); $s[$o] = new HasDestructor(); try { $s->offsetUnset($o); } catch (Exception $e) { echo "Caught: {$e->getMessage()}\n"; } var_dump($s); ?> --EXPECT-- In destructor. Should no longer be accessible in $s: object(SplObjectStorage)#2 (1) { ["storage":"SplObjectStorage":private]=> array(0) { } } Caught: thrown from destructor object(SplObjectStorage)#2 (1) { ["storage":"SplObjectStorage":private]=> array(0) { } } In destructor. Should no longer be accessible in $s: object(SplObjectStorage)#2 (1) { ["storage":"SplObjectStorage":private]=> array(0) { } } Caught: thrown from destructor object(SplObjectStorage)#2 (1) { ["storage":"SplObjectStorage":private]=> array(0) { } }