/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/spl/tests/ArrayObject/arrayObject_setIteratorClass_error1.phpt
49 строк
1 KB
Gina Peter Banyard
ext/spl: Deprecate ArrayObject and ArrayIterator with objects (#19420)
14 авг 2025, 14:38
Не верифицирован
14 авг 2025, 14:38
fb87b14
Код
Авторство
О чём код?
--TEST-- SPL: ArrayObject with bad iterator class. --FILE-- <?php try { $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3)); $ao->setIteratorClass("nonExistentClass"); foreach($ao as $key=>$value) { echo " $key=>$value\n"; } } catch (TypeError $e) { var_dump($e->getMessage()); } try { $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3)); $ao->setIteratorClass("stdClass"); foreach($ao as $key=>$value) { echo " $key=>$value\n"; } } catch (TypeError $e) { var_dump($e->getMessage()); } try { $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3), 0, "nonExistentClass"); foreach($ao as $key=>$value) { echo " $key=>$value\n"; } } catch (TypeError $e) { var_dump($e->getMessage()); } try { $ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3), 0, "stdClass"); foreach($ao as $key=>$value) { echo " $key=>$value\n"; } } catch (TypeError $e) { var_dump($e->getMessage()); } ?> --EXPECT-- string(133) "ArrayObject::setIteratorClass(): Argument #1 ($iteratorClass) must be a class name derived from ArrayIterator, nonExistentClass given" string(125) "ArrayObject::setIteratorClass(): Argument #1 ($iteratorClass) must be a class name derived from ArrayIterator, stdClass given" string(128) "ArrayObject::__construct(): Argument #3 ($iteratorClass) must be a class name derived from ArrayIterator, nonExistentClass given" string(120) "ArrayObject::__construct(): Argument #3 ($iteratorClass) must be a class name derived from ArrayIterator, stdClass given"