From: Raghubansh Kumar Date: Tue, 11 Dec 2007 09:04:49 +0000 (+0000) Subject: New testcases for array_merge_recursive() function X-Git-Tag: RELEASE_2_0_0a1~1215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c958bf2b103b86c3fe7724d056419d4c9c8b627a;p=php New testcases for array_merge_recursive() function --- diff --git a/ext/standard/tests/array/array_merge_recursive_basic1.phpt b/ext/standard/tests/array/array_merge_recursive_basic1.phpt new file mode 100644 index 0000000000..a654cf163f --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_basic1.phpt @@ -0,0 +1,167 @@ +--TEST-- +Test array_merge_recursive() function : basic functionality - array with default keys +--FILE-- + +--EXPECTF-- +*** Testing array_merge_recursive() : array with default keys *** +-- With default argument -- +array(2) { + [0]=> + int(1) + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } +} +-- With more arguments -- +array(4) { + [0]=> + int(1) + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + int(3) + [3]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } +} +array(6) { + [0]=> + int(1) + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + int(3) + [3]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } + [4]=> + array(2) { + [0]=> + int(6) + [1]=> + int(7) + } + [5]=> + array(2) { + [0]=> + string(4) "str1" + [1]=> + string(4) "str2" + } +} +Done +--UEXPECTF-- +*** Testing array_merge_recursive() : array with default keys *** +-- With default argument -- +array(2) { + [0]=> + int(1) + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } +} +-- With more arguments -- +array(4) { + [0]=> + int(1) + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + int(3) + [3]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } +} +array(6) { + [0]=> + int(1) + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + int(3) + [3]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } + [4]=> + array(2) { + [0]=> + int(6) + [1]=> + int(7) + } + [5]=> + array(2) { + [0]=> + unicode(4) "str1" + [1]=> + unicode(4) "str2" + } +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_basic2.phpt b/ext/standard/tests/array/array_merge_recursive_basic2.phpt new file mode 100644 index 0000000000..8ac8c5a953 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_basic2.phpt @@ -0,0 +1,162 @@ +--TEST-- +Test array_merge_recursive() function : basic functionality - associative arrays +--FILE-- + "one", 2 => array(1, 2)); +$arr2 = array(2 => 'three', "four" => array("hello", 'world')); +$arr3 = array(1 => array(6, 7), 'four' => array("str1", 'str2')); + +// Calling array_merge_recursive() with default arguments +echo "-- With default argument --\n"; +var_dump( array_merge_recursive($arr1) ); + +// Calling array_merge_recursive() with more arguments +echo "-- With more arguments --\n"; +var_dump( array_merge_recursive($arr1,$arr2) ); +var_dump( array_merge_recursive($arr1,$arr2,$arr3) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : associative arrays *** +-- With default argument -- +array(2) { + [0]=> + string(3) "one" + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } +} +-- With more arguments -- +array(4) { + [0]=> + string(3) "one" + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + string(5) "three" + ["four"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } +} +array(5) { + [0]=> + string(3) "one" + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + string(5) "three" + ["four"]=> + array(4) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + [2]=> + string(4) "str1" + [3]=> + string(4) "str2" + } + [3]=> + array(2) { + [0]=> + int(6) + [1]=> + int(7) + } +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : associative arrays *** +-- With default argument -- +array(2) { + [0]=> + unicode(3) "one" + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } +} +-- With more arguments -- +array(4) { + [0]=> + unicode(3) "one" + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + unicode(5) "three" + [u"four"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } +} +array(5) { + [0]=> + unicode(3) "one" + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + unicode(5) "three" + [u"four"]=> + array(4) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + [2]=> + unicode(4) "str1" + [3]=> + unicode(4) "str2" + } + [3]=> + array(2) { + [0]=> + int(6) + [1]=> + int(7) + } +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_error.phpt b/ext/standard/tests/array/array_merge_recursive_error.phpt new file mode 100644 index 0000000000..9d6797e491 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_error.phpt @@ -0,0 +1,34 @@ +--TEST-- +Test array_merge_recursive() function : error conditions +--FILE-- + +--EXPECTF-- +*** Testing array_merge_recursive() : error conditions *** + +-- Testing array_merge_recursive() function with Zero arguments -- + +Warning: Wrong parameter count for array_merge_recursive() in %s on line %d +NULL +Done +--UEXPECTF-- +*** Testing array_merge_recursive() : error conditions *** + +-- Testing array_merge_recursive() function with Zero arguments -- + +Warning: Wrong parameter count for array_merge_recursive() in %s on line %d +NULL +Done + diff --git a/ext/standard/tests/array/array_merge_recursive_variation1.phpt b/ext/standard/tests/array/array_merge_recursive_variation1.phpt new file mode 100644 index 0000000000..42f153abe4 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation1.phpt @@ -0,0 +1,499 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - unexpected values for $arr1 argument +--FILE-- + +--EXPECTF-- +*** Testing array_merge_recursive() : Passing non array values to $arr1 argument *** + +-- Iteration 1 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 2 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 3 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 4 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 5 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 6 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 7 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 8 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 9 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 10 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 11 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 12 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 13 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 14 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 15 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 16 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 17 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 18 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 19 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 20 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 21 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 22 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 23 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 24 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : Passing non array values to $arr1 argument *** + +-- Iteration 1 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 2 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 3 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 4 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 5 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 6 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 7 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 8 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 9 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 10 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 11 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 12 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 13 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 14 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 15 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 16 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 17 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 18 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 19 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 20 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 21 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 22 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 23 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL + +-- Iteration 24 -- +-- With default argument -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +-- With more arguments -- +Warning: array_merge_recursive(): Argument #1 is not an array in %s on line %d +NULL +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation10.phpt b/ext/standard/tests/array/array_merge_recursive_variation10.phpt new file mode 100644 index 0000000000..af3bc4c0e8 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation10.phpt @@ -0,0 +1,308 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - two dimensional arrays +--FILE-- + array("hello", "world", "str1" => "hello", "str2" => 'world'), + array(1 => "one", 2 => "two", "one", 'two'), + array(1, 2, 3, 1) +); + +// initialize the second argument +$arr2 = array(1, "hello", "array" => array("hello", 'world')); + +echo "-- Passing the entire 2-d array --\n"; +echo "-- With default argument --\n"; +var_dump( array_merge_recursive($arr1) ); +echo "-- With more arguments --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +echo "-- Passing the sub-array --\n"; +echo "-- With default argument --\n"; +var_dump( array_merge_recursive($arr1["array"]) ); +echo "-- With more arguments --\n"; +var_dump( array_merge_recursive($arr1["array"], $arr2["array"]) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : two dimensional array for $arr1 argument *** +-- Passing the entire 2-d array -- +-- With default argument -- +array(4) { + [0]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } + ["array"]=> + array(4) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + ["str1"]=> + string(5) "hello" + ["str2"]=> + string(5) "world" + } + [1]=> + array(4) { + [1]=> + string(3) "one" + [2]=> + string(3) "two" + [3]=> + string(3) "one" + [4]=> + string(3) "two" + } + [2]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } +} +-- With more arguments -- +array(6) { + [0]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } + ["array"]=> + array(6) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + ["str1"]=> + string(5) "hello" + ["str2"]=> + string(5) "world" + [2]=> + string(5) "hello" + [3]=> + string(5) "world" + } + [1]=> + array(4) { + [1]=> + string(3) "one" + [2]=> + string(3) "two" + [3]=> + string(3) "one" + [4]=> + string(3) "two" + } + [2]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } + [3]=> + int(1) + [4]=> + string(5) "hello" +} +-- Passing the sub-array -- +-- With default argument -- +array(4) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + ["str1"]=> + string(5) "hello" + ["str2"]=> + string(5) "world" +} +-- With more arguments -- +array(6) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + ["str1"]=> + string(5) "hello" + ["str2"]=> + string(5) "world" + [2]=> + string(5) "hello" + [3]=> + string(5) "world" +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : two dimensional array for $arr1 argument *** +-- Passing the entire 2-d array -- +-- With default argument -- +array(4) { + [0]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } + [u"array"]=> + array(4) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + [u"str1"]=> + unicode(5) "hello" + [u"str2"]=> + unicode(5) "world" + } + [1]=> + array(4) { + [1]=> + unicode(3) "one" + [2]=> + unicode(3) "two" + [3]=> + unicode(3) "one" + [4]=> + unicode(3) "two" + } + [2]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } +} +-- With more arguments -- +array(6) { + [0]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } + [u"array"]=> + array(6) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + [u"str1"]=> + unicode(5) "hello" + [u"str2"]=> + unicode(5) "world" + [2]=> + unicode(5) "hello" + [3]=> + unicode(5) "world" + } + [1]=> + array(4) { + [1]=> + unicode(3) "one" + [2]=> + unicode(3) "two" + [3]=> + unicode(3) "one" + [4]=> + unicode(3) "two" + } + [2]=> + array(4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(1) + } + [3]=> + int(1) + [4]=> + unicode(5) "hello" +} +-- Passing the sub-array -- +-- With default argument -- +array(4) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + [u"str1"]=> + unicode(5) "hello" + [u"str2"]=> + unicode(5) "world" +} +-- With more arguments -- +array(6) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + [u"str1"]=> + unicode(5) "hello" + [u"str2"]=> + unicode(5) "world" + [2]=> + unicode(5) "hello" + [3]=> + unicode(5) "world" +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation2.phpt b/ext/standard/tests/array/array_merge_recursive_variation2.phpt new file mode 100644 index 0000000000..0e59fe7c2a --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation2.phpt @@ -0,0 +1,298 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - unexpected values for $arr2 argument +--FILE-- + +--EXPECTF-- +*** Testing array_merge_recursive() : Passing non array values to $arr2 argument *** + +-- Iteration 1 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 2 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 3 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 4 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 5 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 6 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 7 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 8 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 9 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 10 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 11 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 12 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 13 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 14 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 15 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 16 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 17 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 18 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 19 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 20 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 21 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 22 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 23 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 24 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL +Done +--UEXPECTF-- +*** Testing array_merge_recursive() : Passing non array values to $arr2 argument *** + +-- Iteration 1 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 2 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 3 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 4 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 5 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 6 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 7 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 8 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 9 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 10 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 11 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 12 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 13 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 14 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 15 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 16 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 17 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 18 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 19 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 20 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 21 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 22 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 23 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL + +-- Iteration 24 -- +Warning: array_merge_recursive(): Argument #2 is not an array in %s on line %d +NULL +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation3.phpt b/ext/standard/tests/array/array_merge_recursive_variation3.phpt new file mode 100644 index 0000000000..901762dc61 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation3.phpt @@ -0,0 +1,1434 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - different arrays for 'arr1' argument +--FILE-- +22 +'single quoted string' +"double quoted string" +2222 != 1111.\t 0000 = 0000\n +EOT; + +// arrays passed to $arr1 argument +$arrays = array ( +/*1*/ array(1, 2,), // with default keys and numeric values + array(1.1, 2.2), // with default keys & float values + array(false, true), // with default keys and boolean values + array(), // empty array +/*5*/ array(NULL), // with NULL + array("a\v\f", "aaaa\r", "b", "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"), // with double quoted strings + array('a\v\f', 'aaaa\r', 'b', '\[\]\!\@\#\$\%\^\&\*\(\)\{\}'), // with single quoted strings + array("h1" => $blank_line, "h2" => $multiline_string, "h3" => $diff_whitespaces), // with heredocs + + // associative arrays +/*9*/ array(1 => "one", 2 => "two"), // explicit numeric keys, string values + array("one" => 1, "two" => 2, "1" => 1 ), // string keys & numeric values + array( 1 => 10, 2 => 20, 4 => 40), // explicit numeric keys and numeric values + array( "one" => "ten", "two" => "twenty"), // string key/value + array("one" => 1, 2 => "two", 4 => "four"), //mixed + + // associative array, containing null/empty/boolean values as key/value +/*14*/ array(NULL => "NULL", null => "null", "NULL" => NULL, "null" => null), + array(true => "true", false => "false", "false" => false, "true" => true), + array("" => "emptyd", '' => 'emptys', "emptyd" => "", 'emptys' => ''), + array(1 => '', 2 => "", 3 => NULL, 4 => null, 5 => false, 6 => true), + array('' => 1, "" => 2, NULL => 3, null => 4, false => 5, true => 6), + + // array containing embedded arrays +/*15*/ array("str1", "array" => array("hello", 'world'), array(1, 2)) +); + +// initialise the second argument +$arr2 = array( 1 => "one", 2, "string" => "hello", "array" => array("a", "b", "c")); + +// loop through each sub array of $arrays and check the behavior of array_merge_recursive() +$iterator = 1; +foreach($arrays as $arr1) { + echo "-- Iteration $iterator --\n"; + + // with default argument + echo "-- With default argument --\n"; + var_dump( array_merge_recursive($arr1) ); + + // with more arguments + echo "-- With more arguments --\n"; + var_dump( array_merge_recursive($arr1, $arr2) ); + + $iterator++; +} + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : Passing different arrays to $arr1 argument *** +-- Iteration 1 -- +-- With default argument -- +array(2) { + [0]=> + int(1) + [1]=> + int(2) +} +-- With more arguments -- +array(6) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 2 -- +-- With default argument -- +array(2) { + [0]=> + float(1.1) + [1]=> + float(2.2) +} +-- With more arguments -- +array(6) { + [0]=> + float(1.1) + [1]=> + float(2.2) + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 3 -- +-- With default argument -- +array(2) { + [0]=> + bool(false) + [1]=> + bool(true) +} +-- With more arguments -- +array(6) { + [0]=> + bool(false) + [1]=> + bool(true) + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 4 -- +-- With default argument -- +array(0) { +} +-- With more arguments -- +array(4) { + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 5 -- +-- With default argument -- +array(1) { + [0]=> + NULL +} +-- With more arguments -- +array(5) { + [0]=> + NULL + [1]=> + string(3) "one" + [2]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 6 -- +-- With default argument -- +array(4) { + [0]=> + string(3) "a " + [1]=> + string(5) "aaaa +" + [2]=> + string(1) "b" + [3]=> + string(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}" +} +-- With more arguments -- +array(8) { + [0]=> + string(3) "a " + [1]=> + string(5) "aaaa +" + [2]=> + string(1) "b" + [3]=> + string(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}" + [4]=> + string(3) "one" + [5]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 7 -- +-- With default argument -- +array(4) { + [0]=> + string(5) "a\v\f" + [1]=> + string(6) "aaaa\r" + [2]=> + string(1) "b" + [3]=> + string(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}" +} +-- With more arguments -- +array(8) { + [0]=> + string(5) "a\v\f" + [1]=> + string(6) "aaaa\r" + [2]=> + string(1) "b" + [3]=> + string(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}" + [4]=> + string(3) "one" + [5]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 8 -- +-- With default argument -- +array(3) { + ["h1"]=> + string(1) " +" + ["h2"]=> + string(88) "hello world +The quick brown fox jumped over; +the lazy dog +This is a double quoted string" + ["h3"]=> + string(88) "hello + world +1111 != 2222 +heredoc +double quoted string. with different white spaces" +} +-- With more arguments -- +array(7) { + ["h1"]=> + string(1) " +" + ["h2"]=> + string(88) "hello world +The quick brown fox jumped over; +the lazy dog +This is a double quoted string" + ["h3"]=> + string(88) "hello + world +1111 != 2222 +heredoc +double quoted string. with different white spaces" + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 9 -- +-- With default argument -- +array(2) { + [0]=> + string(3) "one" + [1]=> + string(3) "two" +} +-- With more arguments -- +array(6) { + [0]=> + string(3) "one" + [1]=> + string(3) "two" + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 10 -- +-- With default argument -- +array(3) { + ["one"]=> + int(1) + ["two"]=> + int(2) + [0]=> + int(1) +} +-- With more arguments -- +array(7) { + ["one"]=> + int(1) + ["two"]=> + int(2) + [0]=> + int(1) + [1]=> + string(3) "one" + [2]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 11 -- +-- With default argument -- +array(3) { + [0]=> + int(10) + [1]=> + int(20) + [2]=> + int(40) +} +-- With more arguments -- +array(7) { + [0]=> + int(10) + [1]=> + int(20) + [2]=> + int(40) + [3]=> + string(3) "one" + [4]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 12 -- +-- With default argument -- +array(2) { + ["one"]=> + string(3) "ten" + ["two"]=> + string(6) "twenty" +} +-- With more arguments -- +array(6) { + ["one"]=> + string(3) "ten" + ["two"]=> + string(6) "twenty" + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 13 -- +-- With default argument -- +array(3) { + ["one"]=> + int(1) + [0]=> + string(3) "two" + [1]=> + string(4) "four" +} +-- With more arguments -- +array(7) { + ["one"]=> + int(1) + [0]=> + string(3) "two" + [1]=> + string(4) "four" + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 14 -- +-- With default argument -- +array(3) { + [""]=> + string(4) "null" + ["NULL"]=> + NULL + ["null"]=> + NULL +} +-- With more arguments -- +array(7) { + [""]=> + string(4) "null" + ["NULL"]=> + NULL + ["null"]=> + NULL + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 15 -- +-- With default argument -- +array(4) { + [0]=> + string(4) "true" + [1]=> + string(5) "false" + ["false"]=> + bool(false) + ["true"]=> + bool(true) +} +-- With more arguments -- +array(8) { + [0]=> + string(4) "true" + [1]=> + string(5) "false" + ["false"]=> + bool(false) + ["true"]=> + bool(true) + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 16 -- +-- With default argument -- +array(3) { + [""]=> + string(6) "emptys" + ["emptyd"]=> + string(0) "" + ["emptys"]=> + string(0) "" +} +-- With more arguments -- +array(7) { + [""]=> + string(6) "emptys" + ["emptyd"]=> + string(0) "" + ["emptys"]=> + string(0) "" + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 17 -- +-- With default argument -- +array(6) { + [0]=> + string(0) "" + [1]=> + string(0) "" + [2]=> + NULL + [3]=> + NULL + [4]=> + bool(false) + [5]=> + bool(true) +} +-- With more arguments -- +array(10) { + [0]=> + string(0) "" + [1]=> + string(0) "" + [2]=> + NULL + [3]=> + NULL + [4]=> + bool(false) + [5]=> + bool(true) + [6]=> + string(3) "one" + [7]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 18 -- +-- With default argument -- +array(3) { + [""]=> + int(4) + [0]=> + int(5) + [1]=> + int(6) +} +-- With more arguments -- +array(7) { + [""]=> + int(4) + [0]=> + int(5) + [1]=> + int(6) + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 19 -- +-- With default argument -- +array(3) { + [0]=> + string(4) "str1" + ["array"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } +} +-- With more arguments -- +array(6) { + [0]=> + string(4) "str1" + ["array"]=> + array(5) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + [2]=> + string(1) "a" + [3]=> + string(1) "b" + [4]=> + string(1) "c" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : Passing different arrays to $arr1 argument *** +-- Iteration 1 -- +-- With default argument -- +array(2) { + [0]=> + int(1) + [1]=> + int(2) +} +-- With more arguments -- +array(6) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 2 -- +-- With default argument -- +array(2) { + [0]=> + float(1.1) + [1]=> + float(2.2) +} +-- With more arguments -- +array(6) { + [0]=> + float(1.1) + [1]=> + float(2.2) + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 3 -- +-- With default argument -- +array(2) { + [0]=> + bool(false) + [1]=> + bool(true) +} +-- With more arguments -- +array(6) { + [0]=> + bool(false) + [1]=> + bool(true) + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 4 -- +-- With default argument -- +array(0) { +} +-- With more arguments -- +array(4) { + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 5 -- +-- With default argument -- +array(1) { + [0]=> + NULL +} +-- With more arguments -- +array(5) { + [0]=> + NULL + [1]=> + unicode(3) "one" + [2]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 6 -- +-- With default argument -- +array(4) { + [0]=> + unicode(3) "a " + [1]=> + unicode(5) "aaaa +" + [2]=> + unicode(1) "b" + [3]=> + unicode(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}" +} +-- With more arguments -- +array(8) { + [0]=> + unicode(3) "a " + [1]=> + unicode(5) "aaaa +" + [2]=> + unicode(1) "b" + [3]=> + unicode(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}" + [4]=> + unicode(3) "one" + [5]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 7 -- +-- With default argument -- +array(4) { + [0]=> + unicode(5) "a\v\f" + [1]=> + unicode(6) "aaaa\r" + [2]=> + unicode(1) "b" + [3]=> + unicode(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}" +} +-- With more arguments -- +array(8) { + [0]=> + unicode(5) "a\v\f" + [1]=> + unicode(6) "aaaa\r" + [2]=> + unicode(1) "b" + [3]=> + unicode(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}" + [4]=> + unicode(3) "one" + [5]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 8 -- +-- With default argument -- +array(3) { + [u"h1"]=> + unicode(1) " +" + [u"h2"]=> + unicode(88) "hello world +The quick brown fox jumped over; +the lazy dog +This is a double quoted string" + [u"h3"]=> + unicode(88) "hello + world +1111 != 2222 +heredoc +double quoted string. with different white spaces" +} +-- With more arguments -- +array(7) { + [u"h1"]=> + unicode(1) " +" + [u"h2"]=> + unicode(88) "hello world +The quick brown fox jumped over; +the lazy dog +This is a double quoted string" + [u"h3"]=> + unicode(88) "hello + world +1111 != 2222 +heredoc +double quoted string. with different white spaces" + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 9 -- +-- With default argument -- +array(2) { + [0]=> + unicode(3) "one" + [1]=> + unicode(3) "two" +} +-- With more arguments -- +array(6) { + [0]=> + unicode(3) "one" + [1]=> + unicode(3) "two" + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 10 -- +-- With default argument -- +array(3) { + [u"one"]=> + int(1) + [u"two"]=> + int(2) + [0]=> + int(1) +} +-- With more arguments -- +array(7) { + [u"one"]=> + int(1) + [u"two"]=> + int(2) + [0]=> + int(1) + [1]=> + unicode(3) "one" + [2]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 11 -- +-- With default argument -- +array(3) { + [0]=> + int(10) + [1]=> + int(20) + [2]=> + int(40) +} +-- With more arguments -- +array(7) { + [0]=> + int(10) + [1]=> + int(20) + [2]=> + int(40) + [3]=> + unicode(3) "one" + [4]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 12 -- +-- With default argument -- +array(2) { + [u"one"]=> + unicode(3) "ten" + [u"two"]=> + unicode(6) "twenty" +} +-- With more arguments -- +array(6) { + [u"one"]=> + unicode(3) "ten" + [u"two"]=> + unicode(6) "twenty" + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 13 -- +-- With default argument -- +array(3) { + [u"one"]=> + int(1) + [0]=> + unicode(3) "two" + [1]=> + unicode(4) "four" +} +-- With more arguments -- +array(7) { + [u"one"]=> + int(1) + [0]=> + unicode(3) "two" + [1]=> + unicode(4) "four" + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 14 -- +-- With default argument -- +array(3) { + [u""]=> + unicode(4) "null" + [u"NULL"]=> + NULL + [u"null"]=> + NULL +} +-- With more arguments -- +array(7) { + [u""]=> + unicode(4) "null" + [u"NULL"]=> + NULL + [u"null"]=> + NULL + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 15 -- +-- With default argument -- +array(4) { + [0]=> + unicode(4) "true" + [1]=> + unicode(5) "false" + [u"false"]=> + bool(false) + [u"true"]=> + bool(true) +} +-- With more arguments -- +array(8) { + [0]=> + unicode(4) "true" + [1]=> + unicode(5) "false" + [u"false"]=> + bool(false) + [u"true"]=> + bool(true) + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 16 -- +-- With default argument -- +array(3) { + [u""]=> + unicode(6) "emptys" + [u"emptyd"]=> + unicode(0) "" + [u"emptys"]=> + unicode(0) "" +} +-- With more arguments -- +array(7) { + [u""]=> + unicode(6) "emptys" + [u"emptyd"]=> + unicode(0) "" + [u"emptys"]=> + unicode(0) "" + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 17 -- +-- With default argument -- +array(6) { + [0]=> + unicode(0) "" + [1]=> + unicode(0) "" + [2]=> + NULL + [3]=> + NULL + [4]=> + bool(false) + [5]=> + bool(true) +} +-- With more arguments -- +array(10) { + [0]=> + unicode(0) "" + [1]=> + unicode(0) "" + [2]=> + NULL + [3]=> + NULL + [4]=> + bool(false) + [5]=> + bool(true) + [6]=> + unicode(3) "one" + [7]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 18 -- +-- With default argument -- +array(3) { + [u""]=> + int(4) + [0]=> + int(5) + [1]=> + int(6) +} +-- With more arguments -- +array(7) { + [u""]=> + int(4) + [0]=> + int(5) + [1]=> + int(6) + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 19 -- +-- With default argument -- +array(3) { + [0]=> + unicode(4) "str1" + [u"array"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } +} +-- With more arguments -- +array(6) { + [0]=> + unicode(4) "str1" + [u"array"]=> + array(5) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + [2]=> + unicode(1) "a" + [3]=> + unicode(1) "b" + [4]=> + unicode(1) "c" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation4.phpt b/ext/standard/tests/array/array_merge_recursive_variation4.phpt new file mode 100644 index 0000000000..b037f28119 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation4.phpt @@ -0,0 +1,770 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - associative array with different keys +--FILE-- + "0", 1 => array(1 => "one")), + array(1 => "1", 2 => array(1 => "one", 2 => "two", 3 => 1, 4 => "4")), + + // arrays with float keys +/*3*/ array(2.3333 => "float", 44.44 => array(1.1 => "float")), + array(1.2 => "f1", 3.33 => "f2", 4.89999922839999 => array(1.1 => "f1"), 3333333.333333 => "f4"), + + // arrays with string keys +/*5*/ array('\tHello' => array("hello", 'world'), '\v\fworld' => 2.2, 'pen\n' => 111), + array("\tHello" => array("hello", 'world'), "\v\fworld" => 2.2, "pen\n" => 111), + array("hello", $heredoc => array("heredoc", 'string'), "string"), + + // array with object, unset variable and resource variable +/*8*/ array(new classA() => 11, @$unset_var => array("unset"), $fp => 'resource', 11, "hello") +); + +// initialise the second array +$arr2 = array( 1 => "one", 2, "string" => "hello", "array" => array("a", "b", "c")); + +// loop through each sub array of $arrays and check the behavior of array_merge_recursive() +$iterator = 1; +foreach($arrays as $arr1) { + echo "-- Iteration $iterator --\n"; + + // with default argument + echo "-- With default argument --\n"; + var_dump( array_merge_recursive($arr1) ); + + // with more arguments + echo "-- With more arguments --\n"; + var_dump( array_merge_recursive($arr1, $arr2) ); + + $iterator++; +} + +// close the file resource used +fclose($fp); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : assoc. array with diff. keys to $arr1 argument *** + +Warning: Illegal offset type in %s on line %d + +Warning: Illegal offset type in %s on line %d +-- Iteration 1 -- +-- With default argument -- +array(2) { + [0]=> + string(1) "0" + [1]=> + array(1) { + [1]=> + string(3) "one" + } +} +-- With more arguments -- +array(6) { + [0]=> + string(1) "0" + [1]=> + array(1) { + [1]=> + string(3) "one" + } + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 2 -- +-- With default argument -- +array(2) { + [0]=> + string(1) "1" + [1]=> + array(4) { + [1]=> + string(3) "one" + [2]=> + string(3) "two" + [3]=> + int(1) + [4]=> + string(1) "4" + } +} +-- With more arguments -- +array(6) { + [0]=> + string(1) "1" + [1]=> + array(4) { + [1]=> + string(3) "one" + [2]=> + string(3) "two" + [3]=> + int(1) + [4]=> + string(1) "4" + } + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 3 -- +-- With default argument -- +array(2) { + [0]=> + string(5) "float" + [1]=> + array(1) { + [1]=> + string(5) "float" + } +} +-- With more arguments -- +array(6) { + [0]=> + string(5) "float" + [1]=> + array(1) { + [1]=> + string(5) "float" + } + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 4 -- +-- With default argument -- +array(4) { + [0]=> + string(2) "f1" + [1]=> + string(2) "f2" + [2]=> + array(1) { + [1]=> + string(2) "f1" + } + [3]=> + string(2) "f4" +} +-- With more arguments -- +array(8) { + [0]=> + string(2) "f1" + [1]=> + string(2) "f2" + [2]=> + array(1) { + [1]=> + string(2) "f1" + } + [3]=> + string(2) "f4" + [4]=> + string(3) "one" + [5]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 5 -- +-- With default argument -- +array(3) { + ["\tHello"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } + ["\v\fworld"]=> + float(2.2) + ["pen\n"]=> + int(111) +} +-- With more arguments -- +array(7) { + ["\tHello"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } + ["\v\fworld"]=> + float(2.2) + ["pen\n"]=> + int(111) + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 6 -- +-- With default argument -- +array(3) { + [" Hello"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } + [" world"]=> + float(2.2) + ["pen +"]=> + int(111) +} +-- With more arguments -- +array(7) { + [" Hello"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "world" + } + [" world"]=> + float(2.2) + ["pen +"]=> + int(111) + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 7 -- +-- With default argument -- +array(3) { + [0]=> + string(5) "hello" + ["Hello world"]=> + array(2) { + [0]=> + string(7) "heredoc" + [1]=> + string(6) "string" + } + [1]=> + string(6) "string" +} +-- With more arguments -- +array(7) { + [0]=> + string(5) "hello" + ["Hello world"]=> + array(2) { + [0]=> + string(7) "heredoc" + [1]=> + string(6) "string" + } + [1]=> + string(6) "string" + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 8 -- +-- With default argument -- +array(3) { + [""]=> + array(1) { + [0]=> + string(5) "unset" + } + [0]=> + int(11) + [1]=> + string(5) "hello" +} +-- With more arguments -- +array(7) { + [""]=> + array(1) { + [0]=> + string(5) "unset" + } + [0]=> + int(11) + [1]=> + string(5) "hello" + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : assoc. array with diff. keys to $arr1 argument *** + +Warning: Illegal offset type in %s on line %d + +Warning: Illegal offset type in %s on line %d +-- Iteration 1 -- +-- With default argument -- +array(2) { + [0]=> + unicode(1) "0" + [1]=> + array(1) { + [1]=> + unicode(3) "one" + } +} +-- With more arguments -- +array(6) { + [0]=> + unicode(1) "0" + [1]=> + array(1) { + [1]=> + unicode(3) "one" + } + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 2 -- +-- With default argument -- +array(2) { + [0]=> + unicode(1) "1" + [1]=> + array(4) { + [1]=> + unicode(3) "one" + [2]=> + unicode(3) "two" + [3]=> + int(1) + [4]=> + unicode(1) "4" + } +} +-- With more arguments -- +array(6) { + [0]=> + unicode(1) "1" + [1]=> + array(4) { + [1]=> + unicode(3) "one" + [2]=> + unicode(3) "two" + [3]=> + int(1) + [4]=> + unicode(1) "4" + } + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 3 -- +-- With default argument -- +array(2) { + [0]=> + unicode(5) "float" + [1]=> + array(1) { + [1]=> + unicode(5) "float" + } +} +-- With more arguments -- +array(6) { + [0]=> + unicode(5) "float" + [1]=> + array(1) { + [1]=> + unicode(5) "float" + } + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 4 -- +-- With default argument -- +array(4) { + [0]=> + unicode(2) "f1" + [1]=> + unicode(2) "f2" + [2]=> + array(1) { + [1]=> + unicode(2) "f1" + } + [3]=> + unicode(2) "f4" +} +-- With more arguments -- +array(8) { + [0]=> + unicode(2) "f1" + [1]=> + unicode(2) "f2" + [2]=> + array(1) { + [1]=> + unicode(2) "f1" + } + [3]=> + unicode(2) "f4" + [4]=> + unicode(3) "one" + [5]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 5 -- +-- With default argument -- +array(3) { + [u"\tHello"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } + [u"\v\fworld"]=> + float(2.2) + [u"pen\n"]=> + int(111) +} +-- With more arguments -- +array(7) { + [u"\tHello"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } + [u"\v\fworld"]=> + float(2.2) + [u"pen\n"]=> + int(111) + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 6 -- +-- With default argument -- +array(3) { + [u" Hello"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } + [u" world"]=> + float(2.2) + [u"pen +"]=> + int(111) +} +-- With more arguments -- +array(7) { + [u" Hello"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "world" + } + [u" world"]=> + float(2.2) + [u"pen +"]=> + int(111) + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 7 -- +-- With default argument -- +array(3) { + [0]=> + unicode(5) "hello" + [u"Hello world"]=> + array(2) { + [0]=> + unicode(7) "heredoc" + [1]=> + unicode(6) "string" + } + [1]=> + unicode(6) "string" +} +-- With more arguments -- +array(7) { + [0]=> + unicode(5) "hello" + [u"Hello world"]=> + array(2) { + [0]=> + unicode(7) "heredoc" + [1]=> + unicode(6) "string" + } + [1]=> + unicode(6) "string" + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 8 -- +-- With default argument -- +array(3) { + [u""]=> + array(1) { + [0]=> + unicode(5) "unset" + } + [0]=> + int(11) + [1]=> + unicode(5) "hello" +} +-- With more arguments -- +array(7) { + [u""]=> + array(1) { + [0]=> + unicode(5) "unset" + } + [0]=> + int(11) + [1]=> + unicode(5) "hello" + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation5.phpt b/ext/standard/tests/array/array_merge_recursive_variation5.phpt new file mode 100644 index 0000000000..a63f9a6e25 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation5.phpt @@ -0,0 +1,726 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - associative array with different values +--FILE-- + 0, '1' => 0), + array("one" => 1, 'two' => 2, "three" => 1, 4 => 1), + + // arrays with float values +/*3*/ array("f1" => 2.3333, "f2" => 2.3333, "f3" => array(1.1, 2.22)), + array("f1" => 1.2, 'f2' => 3.33, 3 => 4.89999922839999, 'f4' => array(1.2, 'f4' => 1.2)), + + // arrays with string values +/*5*/ array(111 => "\tHello", "array" => "col\tor", 2 => "\v\fworld", 3.3 => "\tHello"), + array(111 => '\tHello', 'array' => 'col\tor', 2 => '\v\fworld', 3.3 => '\tHello'), + array(1 => "hello", "string" => $heredoc, $heredoc), + + // array with object, unset variable and resource variable +/*8*/ array(11 => new classA(), "string" => @$unset_var, "resource" => $fp, new classA(), $fp), +); + +// initialise the second array +$arr2 = array( 1 => "one", 2, "string" => "hello", "array" => array("a", "b", "c")); + +// loop through each sub array of $arrays and check the behavior of array_merge_recursive() +$iterator = 1; +foreach($arrays as $arr1) { + echo "-- Iteration $iterator --\n"; + + // with default argument + echo "-- With default argument --\n"; + var_dump( array_merge_recursive($arr1) ); + + // with more arguments + echo "-- With more arguments --\n"; + var_dump( array_merge_recursive($arr1, $arr2) ); + + $iterator++; +} + +// close the file resource used +fclose($fp); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : assoc. array with diff. values to $arr1 argument *** +-- Iteration 1 -- +-- With default argument -- +array(2) { + [0]=> + int(0) + [1]=> + int(0) +} +-- With more arguments -- +array(6) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + string(3) "one" + [3]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 2 -- +-- With default argument -- +array(4) { + ["one"]=> + int(1) + ["two"]=> + int(2) + ["three"]=> + int(1) + [0]=> + int(1) +} +-- With more arguments -- +array(8) { + ["one"]=> + int(1) + ["two"]=> + int(2) + ["three"]=> + int(1) + [0]=> + int(1) + [1]=> + string(3) "one" + [2]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 3 -- +-- With default argument -- +array(3) { + ["f1"]=> + float(2.3333) + ["f2"]=> + float(2.3333) + ["f3"]=> + array(2) { + [0]=> + float(1.1) + [1]=> + float(2.22) + } +} +-- With more arguments -- +array(7) { + ["f1"]=> + float(2.3333) + ["f2"]=> + float(2.3333) + ["f3"]=> + array(2) { + [0]=> + float(1.1) + [1]=> + float(2.22) + } + [0]=> + string(3) "one" + [1]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 4 -- +-- With default argument -- +array(4) { + ["f1"]=> + float(1.2) + ["f2"]=> + float(3.33) + [0]=> + float(4.8999992284) + ["f4"]=> + array(2) { + [0]=> + float(1.2) + ["f4"]=> + float(1.2) + } +} +-- With more arguments -- +array(8) { + ["f1"]=> + float(1.2) + ["f2"]=> + float(3.33) + [0]=> + float(4.8999992284) + ["f4"]=> + array(2) { + [0]=> + float(1.2) + ["f4"]=> + float(1.2) + } + [1]=> + string(3) "one" + [2]=> + int(2) + ["string"]=> + string(5) "hello" + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 5 -- +-- With default argument -- +array(4) { + [0]=> + string(6) " Hello" + ["array"]=> + string(6) "col or" + [1]=> + string(7) " world" + [2]=> + string(6) " Hello" +} +-- With more arguments -- +array(7) { + [0]=> + string(6) " Hello" + ["array"]=> + array(4) { + [0]=> + string(6) "col or" + [1]=> + string(1) "a" + [2]=> + string(1) "b" + [3]=> + string(1) "c" + } + [1]=> + string(7) " world" + [2]=> + string(6) " Hello" + [3]=> + string(3) "one" + [4]=> + int(2) + ["string"]=> + string(5) "hello" +} +-- Iteration 6 -- +-- With default argument -- +array(4) { + [0]=> + string(7) "\tHello" + ["array"]=> + string(7) "col\tor" + [1]=> + string(9) "\v\fworld" + [2]=> + string(7) "\tHello" +} +-- With more arguments -- +array(7) { + [0]=> + string(7) "\tHello" + ["array"]=> + array(4) { + [0]=> + string(7) "col\tor" + [1]=> + string(1) "a" + [2]=> + string(1) "b" + [3]=> + string(1) "c" + } + [1]=> + string(9) "\v\fworld" + [2]=> + string(7) "\tHello" + [3]=> + string(3) "one" + [4]=> + int(2) + ["string"]=> + string(5) "hello" +} +-- Iteration 7 -- +-- With default argument -- +array(3) { + [0]=> + string(5) "hello" + ["string"]=> + string(11) "Hello world" + [1]=> + string(11) "Hello world" +} +-- With more arguments -- +array(6) { + [0]=> + string(5) "hello" + ["string"]=> + array(2) { + [0]=> + string(11) "Hello world" + [1]=> + string(5) "hello" + } + [1]=> + string(11) "Hello world" + [2]=> + string(3) "one" + [3]=> + int(2) + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +-- Iteration 8 -- +-- With default argument -- +array(5) { + [0]=> + object(classA)#%d (0) { + } + ["string"]=> + NULL + ["resource"]=> + resource(%d) of type (stream) + [1]=> + object(classA)#%d (0) { + } + [2]=> + resource(%d) of type (stream) +} +-- With more arguments -- +array(8) { + [0]=> + object(classA)#%d (0) { + } + ["string"]=> + array(1) { + [0]=> + string(5) "hello" + } + ["resource"]=> + resource(%d) of type (stream) + [1]=> + object(classA)#%d (0) { + } + [2]=> + resource(%d) of type (stream) + [3]=> + string(3) "one" + [4]=> + int(2) + ["array"]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + } +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : assoc. array with diff. values to $arr1 argument *** +-- Iteration 1 -- +-- With default argument -- +array(2) { + [0]=> + int(0) + [1]=> + int(0) +} +-- With more arguments -- +array(6) { + [0]=> + int(0) + [1]=> + int(0) + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 2 -- +-- With default argument -- +array(4) { + [u"one"]=> + int(1) + [u"two"]=> + int(2) + [u"three"]=> + int(1) + [0]=> + int(1) +} +-- With more arguments -- +array(8) { + [u"one"]=> + int(1) + [u"two"]=> + int(2) + [u"three"]=> + int(1) + [0]=> + int(1) + [1]=> + unicode(3) "one" + [2]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 3 -- +-- With default argument -- +array(3) { + [u"f1"]=> + float(2.3333) + [u"f2"]=> + float(2.3333) + [u"f3"]=> + array(2) { + [0]=> + float(1.1) + [1]=> + float(2.22) + } +} +-- With more arguments -- +array(7) { + [u"f1"]=> + float(2.3333) + [u"f2"]=> + float(2.3333) + [u"f3"]=> + array(2) { + [0]=> + float(1.1) + [1]=> + float(2.22) + } + [0]=> + unicode(3) "one" + [1]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 4 -- +-- With default argument -- +array(4) { + [u"f1"]=> + float(1.2) + [u"f2"]=> + float(3.33) + [0]=> + float(4.8999992284) + [u"f4"]=> + array(2) { + [0]=> + float(1.2) + [u"f4"]=> + float(1.2) + } +} +-- With more arguments -- +array(8) { + [u"f1"]=> + float(1.2) + [u"f2"]=> + float(3.33) + [0]=> + float(4.8999992284) + [u"f4"]=> + array(2) { + [0]=> + float(1.2) + [u"f4"]=> + float(1.2) + } + [1]=> + unicode(3) "one" + [2]=> + int(2) + [u"string"]=> + unicode(5) "hello" + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 5 -- +-- With default argument -- +array(4) { + [0]=> + unicode(6) " Hello" + [u"array"]=> + unicode(6) "col or" + [1]=> + unicode(7) " world" + [2]=> + unicode(6) " Hello" +} +-- With more arguments -- +array(7) { + [0]=> + unicode(6) " Hello" + [u"array"]=> + array(4) { + [0]=> + unicode(6) "col or" + [1]=> + unicode(1) "a" + [2]=> + unicode(1) "b" + [3]=> + unicode(1) "c" + } + [1]=> + unicode(7) " world" + [2]=> + unicode(6) " Hello" + [3]=> + unicode(3) "one" + [4]=> + int(2) + [u"string"]=> + unicode(5) "hello" +} +-- Iteration 6 -- +-- With default argument -- +array(4) { + [0]=> + unicode(7) "\tHello" + [u"array"]=> + unicode(7) "col\tor" + [1]=> + unicode(9) "\v\fworld" + [2]=> + unicode(7) "\tHello" +} +-- With more arguments -- +array(7) { + [0]=> + unicode(7) "\tHello" + [u"array"]=> + array(4) { + [0]=> + unicode(7) "col\tor" + [1]=> + unicode(1) "a" + [2]=> + unicode(1) "b" + [3]=> + unicode(1) "c" + } + [1]=> + unicode(9) "\v\fworld" + [2]=> + unicode(7) "\tHello" + [3]=> + unicode(3) "one" + [4]=> + int(2) + [u"string"]=> + unicode(5) "hello" +} +-- Iteration 7 -- +-- With default argument -- +array(3) { + [0]=> + unicode(5) "hello" + [u"string"]=> + unicode(11) "Hello world" + [1]=> + unicode(11) "Hello world" +} +-- With more arguments -- +array(6) { + [0]=> + unicode(5) "hello" + [u"string"]=> + array(2) { + [0]=> + unicode(11) "Hello world" + [1]=> + unicode(5) "hello" + } + [1]=> + unicode(11) "Hello world" + [2]=> + unicode(3) "one" + [3]=> + int(2) + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +-- Iteration 8 -- +-- With default argument -- +array(5) { + [0]=> + object(classA)#%d (0) { + } + [u"string"]=> + NULL + [u"resource"]=> + resource(%d) of type (stream) + [1]=> + object(classA)#%d (0) { + } + [2]=> + resource(%d) of type (stream) +} +-- With more arguments -- +array(8) { + [0]=> + object(classA)#%d (0) { + } + [u"string"]=> + array(1) { + [0]=> + unicode(5) "hello" + } + [u"resource"]=> + resource(%d) of type (stream) + [1]=> + object(classA)#%d (0) { + } + [2]=> + resource(%d) of type (stream) + [3]=> + unicode(3) "one" + [4]=> + int(2) + [u"array"]=> + array(3) { + [0]=> + unicode(1) "a" + [1]=> + unicode(1) "b" + [2]=> + unicode(1) "c" + } +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation6.phpt b/ext/standard/tests/array/array_merge_recursive_variation6.phpt new file mode 100644 index 0000000000..1b28c4ca1e --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation6.phpt @@ -0,0 +1,192 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - array with duplicate keys +--FILE-- + "one", 2 => "two", 2 => array(1, 2), 3 => "three", 1 => array("duplicate", 'strings')); +// array with string keys +$arr1_string_key = array("str1" => "hello", "str2" => 111, "str1" => "world", "str2" => 111.111); + +// initialize the second argument +$arr2 = array("one", "str1" => "two", array("one", "two")); + +echo "-- With default argument --\n"; +var_dump( array_merge_recursive($arr1_numeric_key) ); +var_dump( array_merge_recursive($arr1_string_key) ); + +echo "-- With more arguments --\n"; +var_dump( array_merge_recursive($arr1_numeric_key, $arr2) ); +var_dump( array_merge_recursive($arr1_string_key, $arr2) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : array with duplicate keys for $arr1 argument *** +-- With default argument -- +array(3) { + [0]=> + array(2) { + [0]=> + string(9) "duplicate" + [1]=> + string(7) "strings" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + string(5) "three" +} +array(2) { + ["str1"]=> + string(5) "world" + ["str2"]=> + float(111.111) +} +-- With more arguments -- +array(6) { + [0]=> + array(2) { + [0]=> + string(9) "duplicate" + [1]=> + string(7) "strings" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + string(5) "three" + [3]=> + string(3) "one" + ["str1"]=> + string(3) "two" + [4]=> + array(2) { + [0]=> + string(3) "one" + [1]=> + string(3) "two" + } +} +array(4) { + ["str1"]=> + array(2) { + [0]=> + string(5) "world" + [1]=> + string(3) "two" + } + ["str2"]=> + float(111.111) + [0]=> + string(3) "one" + [1]=> + array(2) { + [0]=> + string(3) "one" + [1]=> + string(3) "two" + } +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : array with duplicate keys for $arr1 argument *** +-- With default argument -- +array(3) { + [0]=> + array(2) { + [0]=> + unicode(9) "duplicate" + [1]=> + unicode(7) "strings" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + unicode(5) "three" +} +array(2) { + [u"str1"]=> + unicode(5) "world" + [u"str2"]=> + float(111.111) +} +-- With more arguments -- +array(6) { + [0]=> + array(2) { + [0]=> + unicode(9) "duplicate" + [1]=> + unicode(7) "strings" + } + [1]=> + array(2) { + [0]=> + int(1) + [1]=> + int(2) + } + [2]=> + unicode(5) "three" + [3]=> + unicode(3) "one" + [u"str1"]=> + unicode(3) "two" + [4]=> + array(2) { + [0]=> + unicode(3) "one" + [1]=> + unicode(3) "two" + } +} +array(4) { + [u"str1"]=> + array(2) { + [0]=> + unicode(5) "world" + [1]=> + unicode(3) "two" + } + [u"str2"]=> + float(111.111) + [0]=> + unicode(3) "one" + [1]=> + array(2) { + [0]=> + unicode(3) "one" + [1]=> + unicode(3) "two" + } +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation7.phpt b/ext/standard/tests/array/array_merge_recursive_variation7.phpt new file mode 100644 index 0000000000..41a35bd43e --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation7.phpt @@ -0,0 +1,123 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - array with reference variables +--FILE-- + 0, + 1 => &$value4, + 2 => &$value2, + 3 => "hello", + 4 => &$value3, + $value4 => &$value2 +); + +// initialize the second argument +$arr2 = array($value4 => "hello", &$value2); + +echo "-- With default argument --\n"; +var_dump( array_merge_recursive($arr1) ); + +echo "-- With more arguments --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : array with reference variables for $arr1 argument *** +-- With default argument -- +array(6) { + [0]=> + int(0) + [1]=> + &string(5) "hello" + [2]=> + &string(5) "hello" + [3]=> + string(5) "hello" + [4]=> + &int(0) + ["hello"]=> + &string(5) "hello" +} +-- With more arguments -- +array(7) { + [0]=> + int(0) + [1]=> + &string(5) "hello" + [2]=> + &string(5) "hello" + [3]=> + string(5) "hello" + [4]=> + &int(0) + ["hello"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(5) "hello" + } + [5]=> + &string(5) "hello" +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : array with reference variables for $arr1 argument *** +-- With default argument -- +array(6) { + [0]=> + int(0) + [1]=> + &unicode(5) "hello" + [2]=> + &unicode(5) "hello" + [3]=> + unicode(5) "hello" + [4]=> + &int(0) + [u"hello"]=> + &unicode(5) "hello" +} +-- With more arguments -- +array(7) { + [0]=> + int(0) + [1]=> + &unicode(5) "hello" + [2]=> + &unicode(5) "hello" + [3]=> + unicode(5) "hello" + [4]=> + &int(0) + [u"hello"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(5) "hello" + } + [5]=> + &unicode(5) "hello" +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation8.phpt b/ext/standard/tests/array/array_merge_recursive_variation8.phpt new file mode 100644 index 0000000000..6474a6274e --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation8.phpt @@ -0,0 +1,112 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - binary safe checking +--FILE-- + "hello", b"world", "str1" => b"hello", "str2" => "world"); + +// initialize the second argument +$arr2 = array(b"str1" => b"binary", b"hello" => "binary", b"str2" => b"binary"); + +echo "-- With default argument --\n"; +var_dump( array_merge_recursive($arr1) ); + +echo "-- With more arguments --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : array with binary data for $arr1 argument *** +-- With default argument -- +array(5) { + [0]=> + string(1) "1" + ["hello"]=> + string(5) "hello" + [1]=> + string(5) "world" + ["str1"]=> + string(5) "hello" + ["str2"]=> + string(5) "world" +} +-- With more arguments -- +array(5) { + [0]=> + string(1) "1" + ["hello"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(6) "binary" + } + [1]=> + string(5) "world" + ["str1"]=> + array(2) { + [0]=> + string(5) "hello" + [1]=> + string(6) "binary" + } + ["str2"]=> + array(2) { + [0]=> + string(5) "world" + [1]=> + string(6) "binary" + } +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : array with binary data for $arr1 argument *** +-- With default argument -- +array(5) { + [0]=> + string(1) "1" + ["hello"]=> + unicode(5) "hello" + [1]=> + string(5) "world" + [u"str1"]=> + string(5) "hello" + [u"str2"]=> + unicode(5) "world" +} +-- With more arguments -- +array(7) { + [0]=> + string(1) "1" + ["hello"]=> + array(2) { + [0]=> + unicode(5) "hello" + [1]=> + unicode(6) "binary" + } + [1]=> + string(5) "world" + [u"str1"]=> + string(5) "hello" + [u"str2"]=> + unicode(5) "world" + ["str1"]=> + string(6) "binary" + ["str2"]=> + string(6) "binary" +} +Done diff --git a/ext/standard/tests/array/array_merge_recursive_variation9.phpt b/ext/standard/tests/array/array_merge_recursive_variation9.phpt new file mode 100644 index 0000000000..966e2cb979 --- /dev/null +++ b/ext/standard/tests/array/array_merge_recursive_variation9.phpt @@ -0,0 +1,185 @@ +--TEST-- +Test array_merge_recursive() function : usage variations - common key and value(Bug#43559) +--FILE-- + 1, "b" => 2); +$arr2 = array("b" => 2, "c" => 4); +echo "-- Integer values --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +// float values +$arr1 = array("a" => 1.1, "b" => 2.2); +$arr2 = array("b" => 2.2, "c" => 3.3); +echo "-- Float values --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +// string values +$arr1 = array("a" => "hello", "b" => "world"); +$arr2 = array("b" => "world", "c" => "string"); +echo "-- String values --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +// boolean values +$arr1 = array("a" => true, "b" => false); +$arr2 = array("b" => false); +echo "-- Boolean values --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +// null values +$arr1 = array( "a" => NULL); +$arr2 = array( "a" => NULL); +echo "-- Null values --\n"; +var_dump( array_merge_recursive($arr1, $arr2) ); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_merge_recursive() : arrays with common key and value *** +-- Integer values -- +array(3) { + ["a"]=> + int(1) + ["b"]=> + array(2) { + [0]=> + int(2) + [1]=> + int(2) + } + ["c"]=> + int(4) +} +-- Float values -- +array(3) { + ["a"]=> + float(1.1) + ["b"]=> + array(2) { + [0]=> + float(2.2) + [1]=> + float(2.2) + } + ["c"]=> + float(3.3) +} +-- String values -- +array(3) { + ["a"]=> + string(5) "hello" + ["b"]=> + array(2) { + [0]=> + string(5) "world" + [1]=> + string(5) "world" + } + ["c"]=> + string(6) "string" +} +-- Boolean values -- +array(2) { + ["a"]=> + bool(true) + ["b"]=> + array(2) { + [0]=> + bool(false) + [1]=> + bool(false) + } +} +-- Null values -- +array(1) { + ["a"]=> + array(2) { + [0]=> + NULL + [1]=> + NULL + } +} +Done +--UEXPECTF-- + +*** Testing array_merge_recursive() : arrays with common key and value *** +-- Integer values -- +array(3) { + [u"a"]=> + int(1) + [u"b"]=> + array(2) { + [0]=> + int(2) + [1]=> + int(2) + } + [u"c"]=> + int(4) +} +-- Float values -- +array(3) { + [u"a"]=> + float(1.1) + [u"b"]=> + array(2) { + [0]=> + float(2.2) + [1]=> + float(2.2) + } + [u"c"]=> + float(3.3) +} +-- String values -- +array(3) { + [u"a"]=> + unicode(5) "hello" + [u"b"]=> + array(2) { + [0]=> + unicode(5) "world" + [1]=> + unicode(5) "world" + } + [u"c"]=> + unicode(6) "string" +} +-- Boolean values -- +array(2) { + [u"a"]=> + bool(true) + [u"b"]=> + array(2) { + [0]=> + bool(false) + [1]=> + bool(false) + } +} +-- Null values -- +array(1) { + [u"a"]=> + array(2) { + [0]=> + NULL + [1]=> + NULL + } +} +Done