diff options
| author | George Peter Banyard <girgias@php.net> | 2019-08-21 02:57:33 +0200 |
|---|---|---|
| committer | Joe Watkins <krakjoe@php.net> | 2019-08-29 16:02:59 +0200 |
| commit | 62751b0d453ac51c559ea31d360a290081eb0c1d (patch) | |
| tree | 6de7a7eca53d5991286f6c894164e72ae7af19af | |
| parent | 81277a104c98476b0c427ac514cd307e75bc68da (diff) | |
| download | php-git-62751b0d453ac51c559ea31d360a290081eb0c1d.tar.gz | |
Promote warnings to errors in array_walk(_recursive)()
| -rw-r--r-- | ext/standard/array.c | 4 | ||||
| -rw-r--r-- | ext/standard/tests/array/bug70713.phpt | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 083d14ec3c..245eeba7d8 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1399,7 +1399,7 @@ static int php_array_walk(zval *array, zval *userdata, int recursive) /* {{{ */ SEPARATE_ARRAY(zv); thash = Z_ARRVAL_P(zv); if (GC_IS_RECURSIVE(thash)) { - php_error_docref(NULL, E_WARNING, "recursion detected"); + zend_throw_error(NULL, "Recursion detected"); result = FAILURE; break; } @@ -1450,7 +1450,7 @@ static int php_array_walk(zval *array, zval *userdata, int recursive) /* {{{ */ target_hash = Z_OBJPROP_P(array); pos = zend_hash_iterator_pos(ht_iter, target_hash); } else { - php_error_docref(NULL, E_WARNING, "Iterated value is no longer an array or object"); + zend_type_error("Iterated value is no longer an array or object"); result = FAILURE; break; } diff --git a/ext/standard/tests/array/bug70713.phpt b/ext/standard/tests/array/bug70713.phpt index 7cd0a0f113..f24720607d 100644 --- a/ext/standard/tests/array/bug70713.phpt +++ b/ext/standard/tests/array/bug70713.phpt @@ -19,8 +19,13 @@ class obj } $arr = array('string' => new obj); -array_walk_recursive($arr, 'settype'); + +try { + array_walk_recursive($arr, 'settype'); +} catch (\TypeError $e) { + echo $e->getMessage() . "\n"; +} ?> ---EXPECTF-- -Warning: array_walk_recursive(): Iterated value is no longer an array or object in %s on line %d +--EXPECT-- +Iterated value is no longer an array or object |
