Return to bug33940.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Bug #33940 (array_map() fails to pass by reference when called recursively) 3: --INI-- 4: allow_call_time_pass_reference=1 5: error_reporting=4095 6: --FILE-- 7: <?php 8: function ref_map(&$item) { 9: if(!is_array($item)) { 10: $item = 1; 11: return 2; 12: } else { 13: $ret = array_map('ref_map', &$item); 14: return $ret; 15: } 16: } 17: 18: $a = array(array(0), 0); 19: $ret = array_map('ref_map', $a); 20: echo 'Array: '; print_r($a); 21: echo 'Return: '; print_r($ret); 22: $a = array(array(0), 0); 23: $ret = array_map('ref_map', &$a); 24: echo 'Array: '; print_r($a); 25: echo 'Return: '; print_r($ret); 26: ?> 27: --EXPECTF-- 28: Array: Array 29: ( 30: [0] => Array 31: ( 32: [0] => 0 33: ) 34: 35: [1] => 0 36: ) 37: Return: Array 38: ( 39: [0] => Array 40: ( 41: [0] => 2 42: ) 43: 44: [1] => 2 45: ) 46: Array: Array 47: ( 48: [0] => Array 49: ( 50: [0] => 1 51: ) 52: 53: [1] => 1 54: ) 55: Return: Array 56: ( 57: [0] => Array 58: ( 59: [0] => 2 60: ) 61: 62: [1] => 2 63: )