aharvey Fri, 27 Aug 2010 03:54:10 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=302838
Log: Implemented request #34857 (Change array_combine behaviour when called with empty arrays). Patch by Joel Perras <joel.per...@gmail.com>. Bug: http://bugs.php.net/34857 (Assigned) Change array_combine behavoiur Changed paths: U php/php-src/trunk/NEWS U php/php-src/trunk/UPGRADING U php/php-src/trunk/ext/standard/array.c U php/php-src/trunk/ext/standard/tests/array/array_combine_error2.phpt U php/php-src/trunk/ext/standard/tests/array/array_combine_variation3.phpt U php/php-src/trunk/ext/standard/tests/array/array_combine_variation4.phpt U php/php-src/trunk/ext/standard/tests/array/array_combine_variation5.phpt Modified: php/php-src/trunk/NEWS =================================================================== --- php/php-src/trunk/NEWS 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/NEWS 2010-08-27 03:54:10 UTC (rev 302838) @@ -101,6 +101,8 @@ at gmail dot com, Pierre) - Implemented FR #42060 (Add paged Results support). (a...@openldap.org, iaren...@eteo.mondragon.edu, jean...@au-fil-du.net, remy.sai...@gmail.com) +- Implemented FR #34857 (Change array_combine behaviour when called with empty + arrays). (joel.per...@gmail.com) - Fixed PDO objects binary incompatibility. (Dmitry) Modified: php/php-src/trunk/UPGRADING =================================================================== --- php/php-src/trunk/UPGRADING 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/UPGRADING 2010-08-27 03:54:10 UTC (rev 302838) @@ -90,7 +90,8 @@ 3. Changes made to existing functions ===================================== -- +- array_combine now returns array() instead of FALSE when two empty arrays are + provided as parameters. =================================== 4. Changes made to existing methods Modified: php/php-src/trunk/ext/standard/array.c =================================================================== --- php/php-src/trunk/ext/standard/array.c 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/ext/standard/array.c 2010-08-27 03:54:10 UTC (rev 302838) @@ -4481,13 +4481,12 @@ 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 && Modified: php/php-src/trunk/ext/standard/tests/array/array_combine_error2.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/array/array_combine_error2.phpt 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/ext/standard/tests/array/array_combine_error2.phpt 2010-08-27 03:54:10 UTC (rev 302838) @@ -32,10 +32,9 @@ *** Testing array_combine() : error conditions specific to array_combine() *** -- Testing array_combine() function with empty arrays -- +array(0) { +} -Warning: array_combine(): Both parameters should have at least 1 element in %s on line %d -bool(false) - -- Testing array_combine() function with empty array for $keys argument -- Warning: array_combine(): Both parameters should have an equal number of elements in %s on line %d Modified: php/php-src/trunk/ext/standard/tests/array/array_combine_variation3.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/array/array_combine_variation3.phpt 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/ext/standard/tests/array/array_combine_variation3.phpt 2010-08-27 03:54:10 UTC (rev 302838) @@ -108,9 +108,8 @@ 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) { [""]=> Modified: php/php-src/trunk/ext/standard/tests/array/array_combine_variation4.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/array/array_combine_variation4.phpt 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/ext/standard/tests/array/array_combine_variation4.phpt 2010-08-27 03:54:10 UTC (rev 302838) @@ -100,9 +100,8 @@ 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]=> Modified: php/php-src/trunk/ext/standard/tests/array/array_combine_variation5.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/array/array_combine_variation5.phpt 2010-08-27 02:42:44 UTC (rev 302837) +++ php/php-src/trunk/ext/standard/tests/array/array_combine_variation5.phpt 2010-08-27 03:54:10 UTC (rev 302838) @@ -82,9 +82,8 @@ --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]=>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php