/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/spl/tests/SplObjectStorage/observer_004.phpt
119 строк
2 KB
Gina Peter Banyard
ext/spl: Deprecate SplObjectStorage::contains(), SplObjectStorage::attach(), and SplObjectStorage::detach() (#19424)
09 авг 2025, 13:36
Не верифицирован
09 авг 2025, 13:36
1687231
Код
Авторство
О чём код?
--TEST-- SPL: SplObjectStorage serialization & overloading --FILE-- <?php class TestClass { public $test = 25; public function __construct($test = 42) { $this->test = $test; } } class MyStorage extends SplObjectStorage { public $bla = 25; public function __construct($bla = 26) { $this->bla = $bla; } } $storage = new MyStorage(); foreach(array(1,2) as $value) { $storage->offsetSet(new TestClass($value)); } var_dump(count($storage)); foreach($storage as $object) { var_dump($object->test); } var_dump($storage); var_dump(serialize($storage)); echo "===UNSERIALIZE===\n"; $storage2 = unserialize(serialize($storage)); var_dump(count($storage2)); foreach($storage2 as $object) { var_dump($object->test); } var_dump($storage2); ?> --EXPECTF-- int(2) int(1) int(2) object(MyStorage)#%d (2) { ["bla"]=> int(26) ["storage":"SplObjectStorage":private]=> array(2) { [0]=> array(2) { ["obj"]=> object(TestClass)#%d (1) { ["test"]=> int(1) } ["inf"]=> NULL } [1]=> array(2) { ["obj"]=> object(TestClass)#%d (1) { ["test"]=> int(2) } ["inf"]=> NULL } } } string(%d) "%s" ===UNSERIALIZE=== int(2) int(1) int(2) object(MyStorage)#%d (2) { ["bla"]=> int(26) ["storage":"SplObjectStorage":private]=> array(2) { [0]=> array(2) { ["obj"]=> object(TestClass)#%d (1) { ["test"]=> int(1) } ["inf"]=> NULL } [1]=> array(2) { ["obj"]=> object(TestClass)#%d (1) { ["test"]=> int(2) } ["inf"]=> NULL } } }