diff options
author | Adam Harvey <aharvey@php.net> | 2010-08-27 03:54:10 +0000 |
---|---|---|
committer | Adam Harvey <aharvey@php.net> | 2010-08-27 03:54:10 +0000 |
commit | f33837ff9714105ee11cdedeefd23e674c0043e6 (patch) | |
tree | a344ab2778dda829e16aa466c5f668ad0e807c65 /ext/standard | |
parent | 0f3468330445904566c508916f25d8275c8cafd5 (diff) | |
download | php-git-f33837ff9714105ee11cdedeefd23e674c0043e6.tar.gz |
Implemented request #34857 (Change array_combine behaviour when called with
empty arrays). Patch by Joel Perras <joel.perras@gmail.com>.
Diffstat (limited to 'ext/standard')
-rw-r--r-- | ext/standard/array.c | 7 | ||||
-rw-r--r-- | ext/standard/tests/array/array_combine_error2.phpt | 5 | ||||
-rw-r--r-- | ext/standard/tests/array/array_combine_variation3.phpt | 5 | ||||
-rw-r--r-- | ext/standard/tests/array/array_combine_variation4.phpt | 5 | ||||
-rw-r--r-- | ext/standard/tests/array/array_combine_variation5.phpt | 5 |
5 files changed, 11 insertions, 16 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 99b9e78c31..ee3c5ae75a 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -4481,13 +4481,12 @@ PHP_FUNCTION(array_combine) RETURN_FALSE; } + array_init_size(return_value, num_keys); + if (!num_keys) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Both parameters should have at least 1 element"); - RETURN_FALSE; + return; } - array_init_size(return_value, num_keys); - zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(keys), &pos_keys); zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values); while (zend_hash_get_current_data_ex(Z_ARRVAL_P(keys), (void **)&entry_keys, &pos_keys) == SUCCESS && diff --git a/ext/standard/tests/array/array_combine_error2.phpt b/ext/standard/tests/array/array_combine_error2.phpt index c06fdb490a..4224f1c8eb 100644 --- a/ext/standard/tests/array/array_combine_error2.phpt +++ b/ext/standard/tests/array/array_combine_error2.phpt @@ -32,9 +32,8 @@ echo "Done"; *** Testing array_combine() : error conditions specific to array_combine() *** -- Testing array_combine() function with empty arrays -- - -Warning: array_combine(): Both parameters should have at least 1 element in %s on line %d -bool(false) +array(0) { +} -- Testing array_combine() function with empty array for $keys argument -- diff --git a/ext/standard/tests/array/array_combine_variation3.phpt b/ext/standard/tests/array/array_combine_variation3.phpt index 51d8462d51..03de632905 100644 --- a/ext/standard/tests/array/array_combine_variation3.phpt +++ b/ext/standard/tests/array/array_combine_variation3.phpt @@ -108,9 +108,8 @@ array(2) { bool(true) } -- Iteration 4 -- - -Warning: array_combine(): Both parameters should have at least 1 element in %s on line %d -bool(false) +array(0) { +} -- Iteration 5 -- array(1) { [""]=> diff --git a/ext/standard/tests/array/array_combine_variation4.phpt b/ext/standard/tests/array/array_combine_variation4.phpt index 02ec6efd22..bcd8428cee 100644 --- a/ext/standard/tests/array/array_combine_variation4.phpt +++ b/ext/standard/tests/array/array_combine_variation4.phpt @@ -100,9 +100,8 @@ Warning: Illegal offset type in %s on line %d Warning: Illegal offset type in %s on line %d -- Iteration 1 -- - -Warning: array_combine(): Both parameters should have at least 1 element in %s on line %d -bool(false) +array(0) { +} -- Iteration 2 -- array(1) { [0]=> diff --git a/ext/standard/tests/array/array_combine_variation5.phpt b/ext/standard/tests/array/array_combine_variation5.phpt index c3d1d57aac..4d9f185786 100644 --- a/ext/standard/tests/array/array_combine_variation5.phpt +++ b/ext/standard/tests/array/array_combine_variation5.phpt @@ -82,9 +82,8 @@ echo "Done"; --EXPECTF-- *** Testing array_combine() : assoc array with diff values to both $keys and $values argument *** -- Iteration 1 -- - -Warning: array_combine(): Both parameters should have at least 1 element in %s on line %d -bool(false) +array(0) { +} -- Iteration 2 -- array(1) { [0]=> |