summaryrefslogtreecommitdiff
path: root/ext/standard
diff options
context:
space:
mode:
authorAdam Harvey <aharvey@php.net>2010-08-27 03:54:10 +0000
committerAdam Harvey <aharvey@php.net>2010-08-27 03:54:10 +0000
commitf33837ff9714105ee11cdedeefd23e674c0043e6 (patch)
treea344ab2778dda829e16aa466c5f668ad0e807c65 /ext/standard
parent0f3468330445904566c508916f25d8275c8cafd5 (diff)
downloadphp-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.c7
-rw-r--r--ext/standard/tests/array/array_combine_error2.phpt5
-rw-r--r--ext/standard/tests/array/array_combine_variation3.phpt5
-rw-r--r--ext/standard/tests/array/array_combine_variation4.phpt5
-rw-r--r--ext/standard/tests/array/array_combine_variation5.phpt5
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]=>