Return to usort_variation9.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test usort() function : usage variations - referenced variables 3: --FILE-- 4: <?php 5: /* Prototype : bool usort(array $array_arg, string $cmp_function) 6: * Description: Sort an array by values using a user-defined comparison function 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * Pass an array of referenced variables as $array_arg to test behaviour 12: */ 13: 14: echo "*** Testing usort() : usage variation ***\n"; 15: 16: function cmp_function($value1, $value2) 17: { 18: if($value1 == $value2) { 19: return 0; 20: } 21: else if($value1 > $value2) { 22: return 1; 23: } 24: else { 25: return -1; 26: } 27: } 28: 29: // different variables which are used as elements of $array_arg 30: $value1 = -5; 31: $value2 = 100; 32: $value3 = 0; 33: $value4 = &$value1; 34: 35: // array_args an array containing elements with reference variables 36: $array_arg = array( 37: 0 => 10, 38: 1 => &$value4, 39: 2 => &$value2, 40: 3 => 200, 41: 4 => &$value3, 42: ); 43: 44: echo "\n-- Sorting \$array_arg containing different references --\n"; 45: var_dump( usort($array_arg, 'cmp_function') ); 46: var_dump($array_arg); 47: ?> 48: ===DONE=== 49: --EXPECTF-- 50: *** Testing usort() : usage variation *** 51: 52: -- Sorting $array_arg containing different references -- 53: bool(true) 54: array(5) { 55: [0]=> 56: &int(-5) 57: [1]=> 58: &int(0) 59: [2]=> 60: int(10) 61: [3]=> 62: &int(100) 63: [4]=> 64: int(200) 65: } 66: ===DONE===