diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2005-10-30 13:44:26 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2005-10-30 13:44:26 +0000 |
commit | d22d6910ad9aed411654bd27f356fb7ee978a9eb (patch) | |
tree | 4f1253eccfef0ab0631019756d3f6eac1aa6c4f4 /ext/standard/array.c | |
parent | cc4b4536115fdfd49fd2dbbe1befb2914e9127c8 (diff) | |
download | php-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.c | 8 |
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; |