Return to array_diff_assoc_variation7.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_diff_assoc() function : usage variations - arrays containing referenced variables 3: --FILE-- 4: 5: <?php 6: /* Prototype : array array_diff_assoc(array $arr1, array $arr2 [, array ...]) 7: * Description: Returns the entries of $arr1 that have values which are not 8: * present in any of the others arguments but do additional checks whether the keys are equal 9: * Source code: ext/standard/array.c 10: */ 11: 12: /* 13: * Tests how array_diff_assoc compares 14: * 1. Referenced variables 15: * 2. Arrays that have been referenced to each other 16: */ 17: 18: echo "*** Testing array_diff_assoc() : usage variations ***\n"; 19: 20: $a = 'a'; 21: 22: $arr1 = array('a', 'b', 'c', $a); 23: $arr2 = array('a' => 1, 'b' => 2, 'c' => 3, &$a); 24: 25: echo "-- Results when \$a = $a: --\n"; 26: var_dump(array_diff_assoc($arr1, $arr2)); 27: var_dump(array_diff_assoc($arr2, $arr1)); 28: 29: $a = 4; 30: 31: echo "-- Results when \$a has been changed to $a: --\n"; 32: var_dump(array_diff_assoc($arr1, $arr2)); 33: var_dump(array_diff_assoc($arr2, $arr1)); 34: 35: $arr2 = &$arr1; 36: 37: echo "-- Results when \$arr2 is referenced to \$arr1 --\n"; 38: var_dump(array_diff_assoc($arr1, $arr2)); 39: var_dump(array_diff_assoc($arr2, $arr1)); 40: 41: $arr1 = array('zero' => 'x', 'one' => 'y', 'two' => 'z'); 42: 43: echo "-- Results when \$arr1 is changed --\n"; 44: var_dump(array_diff_assoc($arr1, $arr2)); 45: var_dump(array_diff_assoc($arr2, $arr1)); 46: 47: echo "Done"; 48: ?> 49: 50: --EXPECTF-- 51: 52: *** Testing array_diff_assoc() : usage variations *** 53: -- Results when $a = a: -- 54: array(3) { 55: [1]=> 56: string(1) "b" 57: [2]=> 58: string(1) "c" 59: [3]=> 60: string(1) "a" 61: } 62: array(3) { 63: ["a"]=> 64: int(1) 65: ["b"]=> 66: int(2) 67: ["c"]=> 68: int(3) 69: } 70: -- Results when $a has been changed to 4: -- 71: array(4) { 72: [0]=> 73: string(1) "a" 74: [1]=> 75: string(1) "b" 76: [2]=> 77: string(1) "c" 78: [3]=> 79: string(1) "a" 80: } 81: array(4) { 82: ["a"]=> 83: int(1) 84: ["b"]=> 85: int(2) 86: ["c"]=> 87: int(3) 88: [0]=> 89: &int(4) 90: } 91: -- Results when $arr2 is referenced to $arr1 -- 92: array(0) { 93: } 94: array(0) { 95: } 96: -- Results when $arr1 is changed -- 97: array(0) { 98: } 99: array(0) { 100: } 101: Done