mirror of
https://github.com/php/php-src.git
synced 2024-09-23 02:47:26 +00:00
MFB51: Fixed bug #35014 (array_product() always returns 0).
This commit is contained in:
parent
e1ce1262ce
commit
1321658d91
@ -4244,7 +4244,10 @@ PHP_FUNCTION(array_product)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ZVAL_LONG(return_value, 0);
|
if (!zend_hash_num_elements(Z_ARRVAL_PP(input))) {
|
||||||
|
RETURN_LONG(0);
|
||||||
|
}
|
||||||
|
ZVAL_LONG(return_value, 1);
|
||||||
|
|
||||||
for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_PP(input), &pos);
|
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;
|
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