mirror of
https://github.com/php/php-src.git
synced 2024-10-17 22:42:38 +00:00
53 lines
1.1 KiB
Plaintext
53 lines
1.1 KiB
Plaintext
|
--TEST--
|
||
|
IteratorAggregate::getIterator bad return type
|
||
|
--FILE--
|
||
|
<?php
|
||
|
|
||
|
class bad1 implements IteratorAggregate {
|
||
|
function getIterator() {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class bad2 implements IteratorAggregate {
|
||
|
function getIterator() {
|
||
|
return new stdClass;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class bad3 implements IteratorAggregate {
|
||
|
function getIterator() {
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class bad4 implements IteratorAggregate {
|
||
|
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");
|
||
|
|
||
|
?>
|
||
|
===DONE===
|
||
|
--EXPECTF--
|
||
|
30: Objects returned by bad1::getIterator() must be traversable or implement interface Iterator
|
||
|
30: Objects returned by bad2::getIterator() must be traversable or implement interface Iterator
|
||
|
30: Objects returned by bad3::getIterator() must be traversable or implement interface Iterator
|
||
|
30: Objects returned by bad4::getIterator() must be traversable or implement interface Iterator
|
||
|
===DONE===
|