diff options
Diffstat (limited to 'ext/standard/tests/array/array_diff_variation7.phpt')
-rw-r--r-- | ext/standard/tests/array/array_diff_variation7.phpt | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_diff_variation7.phpt b/ext/standard/tests/array/array_diff_variation7.phpt new file mode 100644 index 0000000..c53cbb3 --- /dev/null +++ b/ext/standard/tests/array/array_diff_variation7.phpt @@ -0,0 +1,95 @@ +--TEST-- +Test array_diff() function : usage variations - arrays containing referenced variables +--FILE-- +<?php +/* Prototype : array array_diff(array $arr1, array $arr2 [, array ...]) + * Description: Returns the entries of $arr1 that have values which are not + * present in any of the others arguments. + * Source code: ext/standard/array.c + */ + +/* + * Test how array_diff compares arrays that + * 1. Contain referenced variables + * 2. Have been referenced to each other + */ + +echo "*** Testing array_diff() : usage variations ***\n"; +$a = 'a'; + +$arr1 = array ("&$a", 'b', 'c'); +$arr2 = array (1, 2, 3); +echo "-- Basic Comparison --\n"; +var_dump(array_diff($arr1, $arr2)); +var_dump(array_diff($arr2, $arr1)); + +$a = 1; + +echo "-- \$a changed --\n"; +var_dump(array_diff($arr1, $arr2)); +var_dump(array_diff($arr2, $arr1)); + + +$arr2 = &$arr1; +echo "-- Arrays referenced to each other --\n"; +var_dump(array_diff($arr1, $arr2)); +var_dump(array_diff($arr2, $arr1)); + + +$arr1 = array('x', 'y', 'z'); +echo "-- \$arr1 changed --\n"; +var_dump(array_diff($arr1, $arr2)); +var_dump(array_diff($arr2, $arr1)); + + +echo "Done"; +?> + +--EXPECTF-- + +*** Testing array_diff() : usage variations *** +-- Basic Comparison -- +array(3) { + [0]=> + string(2) "&a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" +} +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +-- $a changed -- +array(3) { + [0]=> + string(2) "&a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" +} +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +-- Arrays referenced to each other -- +array(0) { +} +array(0) { +} +-- $arr1 changed -- +array(0) { +} +array(0) { +} +Done
\ No newline at end of file |