Return to each_variation4.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test each() function : usage variations - Referenced variables 3: --INI-- 4: allow_call_time_pass_reference=on 5: --FILE-- 6: <?php 7: /* Prototype : array each(array $arr) 8: * Description: Return the currently pointed key..value pair in the passed array, 9: * and advance the pointer to the next element 10: * Source code: Zend/zend_builtin_functions.c 11: */ 12: 13: /* 14: * Test behaviour of each() when: 15: * 1. Passed an array made up of referenced variables 16: * 2. Passed an array as $arr argument by reference 17: */ 18: 19: echo "*** Testing each() : usage variations ***\n"; 20: 21: echo "\n-- Array made up of referenced variables: --\n"; 22: $val1 = 'foo'; 23: $val2 = 'bar'; 24: 25: $arr1 = array('one' => &$val1, &$val2); 26: 27: echo "-- Call each until at the end of the array: --\n"; 28: var_dump( each($arr1) ); 29: var_dump( each($arr1) ); 30: var_dump( each($arr1) ); 31: 32: 33: echo "\n-- Pass an array by reference to each(): --\n"; 34: $arr2 = array('zero', 'one', 'two'); 35: 36: var_dump( each(&$arr2) ); 37: echo "-- Check original array: --\n"; 38: var_dump($arr2); 39: 40: echo "Done"; 41: ?> 42: 43: --EXPECTF-- 44: *** Testing each() : usage variations *** 45: 46: -- Array made up of referenced variables: -- 47: -- Call each until at the end of the array: -- 48: array(4) { 49: [1]=> 50: string(3) "foo" 51: ["value"]=> 52: string(3) "foo" 53: [0]=> 54: string(3) "one" 55: ["key"]=> 56: string(3) "one" 57: } 58: array(4) { 59: [1]=> 60: string(3) "bar" 61: ["value"]=> 62: string(3) "bar" 63: [0]=> 64: int(0) 65: ["key"]=> 66: int(0) 67: } 68: bool(false) 69: 70: -- Pass an array by reference to each(): -- 71: array(4) { 72: [1]=> 73: string(4) "zero" 74: ["value"]=> 75: string(4) "zero" 76: [0]=> 77: int(0) 78: ["key"]=> 79: int(0) 80: } 81: -- Check original array: -- 82: array(3) { 83: [0]=> 84: string(4) "zero" 85: [1]=> 86: string(3) "one" 87: [2]=> 88: string(3) "two" 89: } 90: Done