diff options
author | George Peter Banyard <girgias@php.net> | 2019-08-21 01:11:44 +0200 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2019-08-27 23:41:22 +0200 |
commit | 9fc3d5da110a12bc3b55a211408248f3e97a6a03 (patch) | |
tree | c985235c924e72bb5bdcb0de0d3e1360e3490c23 | |
parent | b91a881b326950a2952962205e71f1da141e0847 (diff) | |
download | php-git-9fc3d5da110a12bc3b55a211408248f3e97a6a03.tar.gz |
Promote warnings to errors in max()
-rw-r--r-- | ext/standard/array.c | 12 | ||||
-rw-r--r-- | ext/standard/tests/array/max.phpt | 34 |
2 files changed, 29 insertions, 17 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 709ab14dc5..5f3830d899 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1287,7 +1287,9 @@ PHP_FUNCTION(min) } /* }}} */ -/* {{{ proto mixed max(mixed arg1 [, mixed arg2 [, mixed ...]]) +/* {{{ + * proto mixed max(array values) + * proto mixed max(mixed arg1 [, mixed arg2 [, mixed ...]]) Return the highest value in an array or a series of arguments */ PHP_FUNCTION(max) { @@ -1303,14 +1305,14 @@ PHP_FUNCTION(max) zval *result; if (Z_TYPE(args[0]) != IS_ARRAY) { - php_error_docref(NULL, E_WARNING, "When only one parameter is given, it must be an array"); - RETVAL_NULL(); + zend_type_error("When only one parameter is given, it must be an array"); + return; } else { if ((result = zend_hash_minmax(Z_ARRVAL(args[0]), php_array_data_compare, 1)) != NULL) { ZVAL_COPY_DEREF(return_value, result); } else { - php_error_docref(NULL, E_WARNING, "Array must contain at least one element"); - RETVAL_FALSE; + zend_throw_error(NULL, "Array must contain at least one element"); + return; } } } else { diff --git a/ext/standard/tests/array/max.phpt b/ext/standard/tests/array/max.phpt index df471ef255..9e6448cd52 100644 --- a/ext/standard/tests/array/max.phpt +++ b/ext/standard/tests/array/max.phpt @@ -5,9 +5,24 @@ precision=14 --FILE-- <?php -var_dump(max(1)); -var_dump(max(array())); -var_dump(max(new stdclass)); +try { + var_dump(max(1)); +} catch (\TypeError $e) { + echo $e->getMessage() . "\n"; +} + +try { + var_dump(max(array())); +} catch (\Error $e) { + echo $e->getMessage() . "\n"; +} + +try { + var_dump(max(new stdclass)); +} catch (\TypeError $e) { + echo $e->getMessage() . "\n"; +} + var_dump(max(2,1,2)); var_dump(max(2.1,2.11,2.09)); var_dump(max("", "t", "b")); @@ -18,15 +33,10 @@ var_dump(max(0, true, false, true)); echo "Done\n"; ?> ---EXPECTF-- -Warning: max(): When only one parameter is given, it must be an array in %s on line %d -NULL - -Warning: max(): Array must contain at least one element in %s on line %d -bool(false) - -Warning: max(): When only one parameter is given, it must be an array in %s on line %d -NULL +--EXPECT-- +When only one parameter is given, it must be an array +Array must contain at least one element +When only one parameter is given, it must be an array int(2) float(2.11) string(1) "t" |