diff options
-rw-r--r-- | ext/standard/array.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 1175b3303a..41b4b668c0 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -4366,17 +4366,16 @@ PHP_FUNCTION(array_combine) return; } - if (zend_hash_num_elements(Z_ARRVAL_P(keys)) == 0 || zend_hash_num_elements(Z_ARRVAL_P(values)) == 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Both parameters should have at least 1 element"); + if (zend_hash_num_elements(Z_ARRVAL_P(keys)) != zend_hash_num_elements(Z_ARRVAL_P(values))) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Both parameters should have equal number of elements"); RETURN_FALSE; } - - if (zend_hash_num_elements(Z_ARRVAL_P(keys)) != zend_hash_num_elements(Z_ARRVAL_P(values))) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Both parameters should have equal number of elements"); + if (!zend_hash_num_elements(Z_ARRVAL_P(keys))) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Both parameters should have at least 1 element"); RETURN_FALSE; } - + array_init(return_value); zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(keys), &pos_keys); |