Annotation of embedaddon/php/ext/standard/tests/array/array_diff_variation7.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_diff() function : usage variations - arrays containing referenced variables
3: --FILE--
4: <?php
5: /* Prototype : array array_diff(array $arr1, array $arr2 [, array ...])
6: * Description: Returns the entries of $arr1 that have values which are not
7: * present in any of the others arguments.
8: * Source code: ext/standard/array.c
9: */
10:
11: /*
12: * Test how array_diff compares arrays that
13: * 1. Contain referenced variables
14: * 2. Have been referenced to each other
15: */
16:
17: echo "*** Testing array_diff() : usage variations ***\n";
18: $a = 'a';
19:
20: $arr1 = array ("&$a", 'b', 'c');
21: $arr2 = array (1, 2, 3);
22: echo "-- Basic Comparison --\n";
23: var_dump(array_diff($arr1, $arr2));
24: var_dump(array_diff($arr2, $arr1));
25:
26: $a = 1;
27:
28: echo "-- \$a changed --\n";
29: var_dump(array_diff($arr1, $arr2));
30: var_dump(array_diff($arr2, $arr1));
31:
32:
33: $arr2 = &$arr1;
34: echo "-- Arrays referenced to each other --\n";
35: var_dump(array_diff($arr1, $arr2));
36: var_dump(array_diff($arr2, $arr1));
37:
38:
39: $arr1 = array('x', 'y', 'z');
40: echo "-- \$arr1 changed --\n";
41: var_dump(array_diff($arr1, $arr2));
42: var_dump(array_diff($arr2, $arr1));
43:
44:
45: echo "Done";
46: ?>
47:
48: --EXPECTF--
49:
50: *** Testing array_diff() : usage variations ***
51: -- Basic Comparison --
52: array(3) {
53: [0]=>
54: string(2) "&a"
55: [1]=>
56: string(1) "b"
57: [2]=>
58: string(1) "c"
59: }
60: array(3) {
61: [0]=>
62: int(1)
63: [1]=>
64: int(2)
65: [2]=>
66: int(3)
67: }
68: -- $a changed --
69: array(3) {
70: [0]=>
71: string(2) "&a"
72: [1]=>
73: string(1) "b"
74: [2]=>
75: string(1) "c"
76: }
77: array(3) {
78: [0]=>
79: int(1)
80: [1]=>
81: int(2)
82: [2]=>
83: int(3)
84: }
85: -- Arrays referenced to each other --
86: array(0) {
87: }
88: array(0) {
89: }
90: -- $arr1 changed --
91: array(0) {
92: }
93: array(0) {
94: }
95: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>