diff --git a/ext/standard/array.c b/ext/standard/array.c index 70523d479ef4f..922216aea7e65 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1240,7 +1240,9 @@ PHP_FUNCTION(key) } /* }}} */ -/* {{{ proto mixed min(mixed arg1 [, mixed arg2 [, mixed ...]]) +/* {{{ + * proto mixed min(array values) + * proto mixed min(mixed arg1 [, mixed arg2 [, mixed ...]]) Return the lowest value in an array or a series of arguments */ PHP_FUNCTION(min) { @@ -1256,14 +1258,14 @@ PHP_FUNCTION(min) 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, 0)) != 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/min.phpt b/ext/standard/tests/array/min.phpt index 031e9b2c96b00..85defa6e855fb 100644 --- a/ext/standard/tests/array/min.phpt +++ b/ext/standard/tests/array/min.phpt @@ -5,9 +5,24 @@ precision=14 --FILE-- getMessage() . "\n"; +} + +try { + var_dump(min(array())); +} catch (\Error $e) { + echo $e->getMessage() . "\n"; +} + +try { + var_dump(min(new stdclass)); +} catch (\TypeError $e) { + echo $e->getMessage() . "\n"; +} + var_dump(min(2,1,2)); var_dump(min(2.1,2.11,2.09)); var_dump(min("", "t", "b")); @@ -18,15 +33,10 @@ var_dump(min(0, true, false, true)); echo "Done\n"; ?> ---EXPECTF-- -Warning: min(): When only one parameter is given, it must be an array in %s on line %d -NULL - -Warning: min(): Array must contain at least one element in %s on line %d -bool(false) - -Warning: min(): 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(1) float(2.09) string(0) ""