summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
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;