mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
Fixed Bug #35014 (array_product() always returns 0).
This commit is contained in:
parent
cc4b453611
commit
d22d6910ad
1
NEWS
1
NEWS
@ -1,6 +1,7 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? Nov 2005, PHP 5.1
|
||||
- Fixed bug #35014 (array_product() always returns 0). (Ilia)
|
||||
|
||||
28 Oct 2005, PHP 5.1 Release Candidate 4
|
||||
- Fixed fgetcsv() and fputcsv() inconsistency. (Dmitry)
|
||||
|
@ -3996,8 +3996,12 @@ PHP_FUNCTION(array_product)
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The argument should be an array");
|
||||
return;
|
||||
}
|
||||
|
||||
ZVAL_LONG(return_value, 0);
|
||||
|
||||
if (!zend_hash_num_elements(Z_ARRVAL_PP(input))) {
|
||||
RETURN_LONG(0);
|
||||
return;
|
||||
}
|
||||
ZVAL_LONG(return_value, 1);
|
||||
|
||||
for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_PP(input), &pos);
|
||||
zend_hash_get_current_data_ex(Z_ARRVAL_PP(input), (void **)&entry, &pos) == SUCCESS;
|
||||
|
31
ext/standard/tests/array/bug35014.phpt
Normal file
31
ext/standard/tests/array/bug35014.phpt
Normal file
@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #35014 (array_product() always returns 0)
|
||||
--FILE--
|
||||
<?php
|
||||
$tests = array(
|
||||
'foo',
|
||||
array(),
|
||||
array(0),
|
||||
array(3),
|
||||
array(3, 3),
|
||||
array(0.5, 2),
|
||||
array(99999999, 99999999),
|
||||
array(8.993, 7443241,988, sprintf("%u", -1)+0.44),
|
||||
array(2,sprintf("%u", -1)),
|
||||
);
|
||||
|
||||
foreach ($tests as $v) {
|
||||
var_dump(array_product($v));
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: array_product(): The argument should be an array in %s/bug35014.php on line 15
|
||||
NULL
|
||||
int(0)
|
||||
int(0)
|
||||
int(3)
|
||||
int(9)
|
||||
float(1)
|
||||
float(9.9999998E+15)
|
||||
float(2.8404260053903E+20)
|
||||
float(8589934590)
|
Loading…
Reference in New Issue
Block a user