$obj = new array_iterator;
-foreach ($obj as $property => $value) {
- var_dump($value);
+try
+{
+ foreach ($obj as $property => $value)
+ {
+ var_dump($value);
+ }
+}
+catch(Exception $e)
+{
+ echo $e->getMessage() . "\n";
}
?>
===DONE===
--EXPECTF--
-Warning: Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator in %sbug26229.php on line %d
-===DONE===
\ No newline at end of file
+Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator
+===DONE===
} else {
zval_ptr_dtor(&array_ptr);
FREE_OP(Ts, op1, EG(free_op1));
+ if (!EG(exception)) {
+ zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
+ }
zend_throw_exception_internal(NULL TSRMLS_CC);
NEXT_OPCODE();
return 0;
#include "zend.h"
#include "zend_API.h"
#include "zend_interfaces.h"
+#include "zend_exceptions.h"
ZEND_API zend_class_entry *zend_ce_traversable;
ZEND_API zend_class_entry *zend_ce_aggregate;
if (!ce || !ce_it || !ce_it->get_iterator || (ce_it->get_iterator == zend_user_it_get_new_iterator && iterator == object)) {
if (!EG(exception))
{
- zend_error(E_WARNING, "Objects returned by %s::getIterator() must be traversable or implement interface Iterator", ce->name);
+ zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Objects returned by %s::getIterator() must be traversable or implement interface Iterator", ce->name);
}
if (iterator)
{