summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2005-10-30 13:44:26 +0000
committerIlia Alshanetsky <iliaa@php.net>2005-10-30 13:44:26 +0000
commitd22d6910ad9aed411654bd27f356fb7ee978a9eb (patch)
tree4f1253eccfef0ab0631019756d3f6eac1aa6c4f4 /ext/standard/array.c
parentcc4b4536115fdfd49fd2dbbe1befb2914e9127c8 (diff)
downloadphp-git-d22d6910ad9aed411654bd27f356fb7ee978a9eb.tar.gz
Fixed Bug #35014 (array_product() always returns 0).
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index bbb4e958bd..b00934bfc6 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -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;