/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/spl/tests/ArrayObject/arrayObject_clone_basic3.phpt
85 строк
3 KB
Gina Peter Banyard
ext/spl: Deprecate ArrayObject and ArrayIterator with objects (#19420)
14 авг 2025, 14:38
Не верифицирован
14 авг 2025, 14:38
fb87b14
Код
Авторство
О чём код?
--TEST-- SPL: Cloning nested ArrayObjects. --FILE-- <?php #[AllowDynamicProperties] class C { public $p = 'C::p.orig'; } $wrappedObject = new C; $innerArrayObject = new ArrayObject($wrappedObject); $outerArrayObject = new ArrayObject($innerArrayObject); $wrappedObject->dynamic1 = 'new prop added to $wrappedObject before clone'; $clonedOuterArrayObject = clone $outerArrayObject; $wrappedObject->dynamic2 = 'new prop added to $wrappedObject after clone'; $innerArrayObject['new.iAO'] = 'new element added $innerArrayObject'; $outerArrayObject['new.oAO'] = 'new element added to $outerArrayObject'; $clonedOuterArrayObject['new.coAO'] = 'new element added to $clonedOuterArrayObject'; var_dump($wrappedObject, $innerArrayObject, $outerArrayObject, $clonedOuterArrayObject); ?> --EXPECTF-- Deprecated: ArrayObject::__construct(): Using an object as a backing array for ArrayObject is deprecated, as it allows violating class constraints and invariants in %s on line %d Deprecated: ArrayObject::__construct(): Using an object as a backing array for ArrayObject is deprecated, as it allows violating class constraints and invariants in %s on line %d object(C)#1 (5) { ["p"]=> string(9) "C::p.orig" ["dynamic1"]=> string(45) "new prop added to $wrappedObject before clone" ["dynamic2"]=> string(44) "new prop added to $wrappedObject after clone" ["new.iAO"]=> string(35) "new element added $innerArrayObject" ["new.oAO"]=> string(38) "new element added to $outerArrayObject" } object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> object(C)#1 (5) { ["p"]=> string(9) "C::p.orig" ["dynamic1"]=> string(45) "new prop added to $wrappedObject before clone" ["dynamic2"]=> string(44) "new prop added to $wrappedObject after clone" ["new.iAO"]=> string(35) "new element added $innerArrayObject" ["new.oAO"]=> string(38) "new element added to $outerArrayObject" } } object(ArrayObject)#3 (1) { ["storage":"ArrayObject":private]=> object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> object(C)#1 (5) { ["p"]=> string(9) "C::p.orig" ["dynamic1"]=> string(45) "new prop added to $wrappedObject before clone" ["dynamic2"]=> string(44) "new prop added to $wrappedObject after clone" ["new.iAO"]=> string(35) "new element added $innerArrayObject" ["new.oAO"]=> string(38) "new element added to $outerArrayObject" } } } object(ArrayObject)#4 (1) { ["storage":"ArrayObject":private]=> array(3) { ["p"]=> string(9) "C::p.orig" ["dynamic1"]=> string(45) "new prop added to $wrappedObject before clone" ["new.coAO"]=> string(44) "new element added to $clonedOuterArrayObject" } }