Return to array_slice_variation9.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_slice() function : usage variations - referenced variables 3: --INI-- 4: allow_call_time_pass_reference=on 5: --FILE-- 6: <?php 7: /* Prototype : array array_slice(array $input, int $offset [, int $length [, bool $preserve_keys]]) 8: * Description: Returns elements specified by offset and length 9: * Source code: ext/standard/array.c 10: */ 11: 12: /* 13: * Test array_slice() when: 14: * 1. Passed an array of referenced variables 15: * 2. $input argument is passed by reference 16: */ 17: 18: echo "*** Testing array_slice() : usage variations ***\n"; 19: 20: $val1 = 'one'; 21: $val2 = 'two'; 22: $val3 = 'three'; 23: 24: echo "\n-- Array of referenced variables (\$preserve_keys = default) --\n"; 25: $input = array(3 => &$val1, 2 => &$val2, 1 => &$val3); 26: var_dump(array_slice($input, 1, 2)); 27: 28: echo "-- Change \$val2 (\$preserve_keys = TRUE) --\n"; 29: $val2 = 'hello, world'; 30: var_dump(array_slice($input, 1, 2, true)); 31: 32: echo "\n-- Pass array by reference --\n"; 33: $new_input = array (1, 2, 3); 34: var_dump(array_slice(&$new_input, 1)); 35: echo "-- Check passed array: --\n"; 36: var_dump($new_input); 37: 38: echo "Done"; 39: ?> 40: 41: --EXPECTF-- 42: *** Testing array_slice() : usage variations *** 43: 44: -- Array of referenced variables ($preserve_keys = default) -- 45: array(2) { 46: [0]=> 47: &string(3) "two" 48: [1]=> 49: &string(5) "three" 50: } 51: -- Change $val2 ($preserve_keys = TRUE) -- 52: array(2) { 53: [2]=> 54: &string(12) "hello, world" 55: [1]=> 56: &string(5) "three" 57: } 58: 59: -- Pass array by reference -- 60: array(2) { 61: [0]=> 62: int(2) 63: [1]=> 64: int(3) 65: } 66: -- Check passed array: -- 67: array(3) { 68: [0]=> 69: int(1) 70: [1]=> 71: int(2) 72: [2]=> 73: int(3) 74: } 75: Done