Skip to content

Commit b91a881

Browse files
committed
Promote warnings to errors in min()
1 parent a879288 commit b91a881

File tree

2 files changed

+29
-17
lines changed

2 files changed

+29
-17
lines changed

ext/standard/array.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,7 +1240,9 @@ PHP_FUNCTION(key)
12401240
}
12411241
/* }}} */
12421242

1243-
/* {{{ proto mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])
1243+
/* {{{
1244+
* proto mixed min(array values)
1245+
* proto mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])
12441246
Return the lowest value in an array or a series of arguments */
12451247
PHP_FUNCTION(min)
12461248
{
@@ -1256,14 +1258,14 @@ PHP_FUNCTION(min)
12561258
zval *result;
12571259

12581260
if (Z_TYPE(args[0]) != IS_ARRAY) {
1259-
php_error_docref(NULL, E_WARNING, "When only one parameter is given, it must be an array");
1260-
RETVAL_NULL();
1261+
zend_type_error("When only one parameter is given, it must be an array");
1262+
return;
12611263
} else {
12621264
if ((result = zend_hash_minmax(Z_ARRVAL(args[0]), php_array_data_compare, 0)) != NULL) {
12631265
ZVAL_COPY_DEREF(return_value, result);
12641266
} else {
1265-
php_error_docref(NULL, E_WARNING, "Array must contain at least one element");
1266-
RETVAL_FALSE;
1267+
zend_throw_error(NULL, "Array must contain at least one element");
1268+
return;
12671269
}
12681270
}
12691271
} else {

ext/standard/tests/array/min.phpt

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,24 @@ precision=14
55
--FILE--
66
<?php
77

8-
var_dump(min(1));
9-
var_dump(min(array()));
10-
var_dump(min(new stdclass));
8+
try {
9+
var_dump(min(1));
10+
} catch (\TypeError $e) {
11+
echo $e->getMessage() . "\n";
12+
}
13+
14+
try {
15+
var_dump(min(array()));
16+
} catch (\Error $e) {
17+
echo $e->getMessage() . "\n";
18+
}
19+
20+
try {
21+
var_dump(min(new stdclass));
22+
} catch (\TypeError $e) {
23+
echo $e->getMessage() . "\n";
24+
}
25+
1126
var_dump(min(2,1,2));
1227
var_dump(min(2.1,2.11,2.09));
1328
var_dump(min("", "t", "b"));
@@ -18,15 +33,10 @@ var_dump(min(0, true, false, true));
1833

1934
echo "Done\n";
2035
?>
21-
--EXPECTF--
22-
Warning: min(): When only one parameter is given, it must be an array in %s on line %d
23-
NULL
24-
25-
Warning: min(): Array must contain at least one element in %s on line %d
26-
bool(false)
27-
28-
Warning: min(): When only one parameter is given, it must be an array in %s on line %d
29-
NULL
36+
--EXPECT--
37+
When only one parameter is given, it must be an array
38+
Array must contain at least one element
39+
When only one parameter is given, it must be an array
3040
int(1)
3141
float(2.09)
3242
string(0) ""

0 commit comments

Comments
 (0)