/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/lang/foreachLoopIteratorAggregate.002.phpt
55 строк
1 KB
Máté Kocsis
Declare tentative return types for Zend (#7251)
19 июл 2021, 14:44
Не верифицирован
19 июл 2021, 14:44
75a678a
Код
Авторство
О чём код?
--TEST-- IteratorAggregate::getIterator bad return type --FILE-- <?php class bad1 implements IteratorAggregate { #[ReturnTypeWillChange] function getIterator() { return null; } } class bad2 implements IteratorAggregate { #[ReturnTypeWillChange] function getIterator() { return new stdClass; } } class bad3 implements IteratorAggregate { #[ReturnTypeWillChange] function getIterator() { return 1; } } class bad4 implements IteratorAggregate { #[ReturnTypeWillChange] function getIterator() { return array(1,2,3); } } function f($className) { try { foreach (new $className as $k=>$v) { echo "$k => $v\n"; } } catch (Exception $e) { echo $e->getLine() . ": " . $e->getMessage() ."\n"; } } f("bad1"); f("bad2"); f("bad3"); f("bad4"); ?> --EXPECT-- 34: Objects returned by bad1::getIterator() must be traversable or implement interface Iterator 34: Objects returned by bad2::getIterator() must be traversable or implement interface Iterator 34: Objects returned by bad3::getIterator() must be traversable or implement interface Iterator 34: Objects returned by bad4::getIterator() must be traversable or implement interface Iterator