Skip to content

Commit 92aea13

Browse files
committed
Deprecate passing empty array to array_(sum|product)()
1 parent 4435823 commit 92aea13

File tree

7 files changed

+22
-21
lines changed

7 files changed

+22
-21
lines changed

ext/standard/array.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5913,7 +5913,7 @@ PHP_FUNCTION(array_sum)
59135913
ZEND_PARSE_PARAMETERS_END();
59145914

59155915
if (zend_hash_num_elements(input) == 0) {
5916-
// TODO Deprecate empty array
5916+
php_error_docref(NULL, E_DEPRECATED, "Passing an empty array is deprecated");
59175917
RETURN_LONG(0);
59185918
}
59195919

@@ -5963,7 +5963,7 @@ PHP_FUNCTION(array_product)
59635963
ZEND_PARSE_PARAMETERS_END();
59645964

59655965
if (zend_hash_num_elements(input) == 0) {
5966-
// TODO Deprecate empty array
5966+
php_error_docref(NULL, E_DEPRECATED, "Passing an empty array is deprecated");
59675967
RETURN_LONG(1);
59685968
}
59695969

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--TEST--
2+
Test array_product() function with empty array
3+
--FILE--
4+
<?php
5+
$input = [];
6+
var_dump(array_product($input));
7+
?>
8+
--EXPECTF--
9+
Deprecated: array_product(): Passing an empty array is deprecated in %s on line %d
10+
int(1)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--TEST--
2+
Test array_sum() function with empty array
3+
--FILE--
4+
<?php
5+
$input = [];
6+
var_dump(array_sum($input));
7+
?>
8+
--EXPECTF--
9+
Deprecated: array_sum(): Passing an empty array is deprecated in %s on line %d
10+
int(0)

ext/standard/tests/array/array_sum_variation7.phpt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ Test array_sum() function : usage variations - 'input' array with unexpected val
99

1010
echo "*** Testing array_sum() : array with unexpected entries ***\n";
1111

12-
// empty array
13-
$input = array();
14-
echo "-- empty array --\n";
15-
var_dump( array_sum($input) );
16-
1712
// string array
1813
$input = array('Apple', 'Banana', 'Carrot', 'Mango', 'Orange');
1914
echo "-- array with string values --\n";
@@ -64,8 +59,6 @@ echo "Done"
6459
?>
6560
--EXPECT--
6661
*** Testing array_sum() : array with unexpected entries ***
67-
-- empty array --
68-
int(0)
6962
-- array with string values --
7063
int(0)
7164
-- array with bool values --

ext/standard/tests/array/bug35014.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ Bug #35014 (array_product() always returns 0) (32bit)
55
--FILE--
66
<?php
77
$tests = array(
8-
array(),
98
array(0),
109
array(3),
1110
array(3, 3),
@@ -20,7 +19,6 @@ foreach ($tests as $v) {
2019
}
2120
?>
2221
--EXPECT--
23-
int(1)
2422
int(0)
2523
int(3)
2624
int(9)

ext/standard/tests/array/bug35014_64bit.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ precision=14
77
--FILE--
88
<?php
99
$tests = array(
10-
array(),
1110
array(0),
1211
array(3),
1312
array(3, 3),
@@ -22,7 +21,6 @@ foreach ($tests as $v) {
2221
}
2322
?>
2423
--EXPECT--
25-
int(1)
2624
int(0)
2725
int(3)
2826
int(9)

ext/standard/tests/array/bug48484.phpt

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)