Return to array_map_variation5.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_map() function : usage variations - associative array with different values 3: --FILE-- 4: <?php 5: /* Prototype : array array_map ( callback $callback , array $arr1 [, array $... ] ) 6: * Description: Applies the callback to the elements of the given arrays 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * Test array_map() by passing associative array with different values for $arr1 argument 12: */ 13: 14: echo "*** Testing array_map() : associative array with diff. values for 'arr1' argument ***\n"; 15: 16: function callback($a) 17: { 18: return ($a); 19: } 20: //get an unset variable 21: $unset_var = array(1, 2); 22: unset ($unset_var); 23: 24: //get a resource variable 25: $fp = fopen(__FILE__, "r"); 26: 27: //get a class 28: class classA 29: { 30: public function __toString(){ 31: return "Class A object"; 32: } 33: } 34: 35: // get a heredoc string 36: $heredoc = <<<EOT 37: Hello world 38: EOT; 39: 40: // initializing the array 41: $arrays = array ( 42: 43: // empty array 44: /*1*/ array(), 45: 46: // arrays with integer values 47: array('0' => 0), 48: array("1" => 1), 49: array("one" => 1, 'two' => 2, "three" => 3, 4 => 4), 50: 51: // arrays with float values 52: /*5*/ array("float" => 2.3333), 53: array("f1" => 1.2, 'f2' => 3.33, 3 => 4.89999922839999, 'f4' => 33333333.3333), 54: 55: // arrays with string values 56: array(111 => "\tHello", "red" => "col\tor", 2 => "\v\fworld", 3.3 => "pen\n"), 57: /*8*/ array(111 => '\tHello', "red" => 'col\tor', 2 => '\v\fworld', 3.3 => 'pen\n'), 58: array(1 => "hello", "heredoc" => $heredoc), 59: 60: // array with object, unset variable and resource variable 61: array(11 => new classA(), "unset" => @$unset_var, "resource" => $fp), 62: 63: // array with mixed values 64: /*11*/ array(1 => 'hello', 2 => new classA(), 222 => "fruit", 65: 'resource' => $fp, "int" => 133, "float" => 444.432, 66: "unset" => @$unset_var, "heredoc" => $heredoc) 67: ); 68: 69: // loop through the various elements of $arrays to test array_map() 70: $iterator = 1; 71: foreach($arrays as $arr1) { 72: echo "-- Iteration $iterator --\n"; 73: var_dump( array_map('callback', $arr1) ); 74: $iterator++; 75: } 76: 77: echo "Done"; 78: ?> 79: --EXPECTF-- 80: *** Testing array_map() : associative array with diff. values for 'arr1' argument *** 81: -- Iteration 1 -- 82: array(0) { 83: } 84: -- Iteration 2 -- 85: array(1) { 86: [0]=> 87: int(0) 88: } 89: -- Iteration 3 -- 90: array(1) { 91: [1]=> 92: int(1) 93: } 94: -- Iteration 4 -- 95: array(4) { 96: ["one"]=> 97: int(1) 98: ["two"]=> 99: int(2) 100: ["three"]=> 101: int(3) 102: [4]=> 103: int(4) 104: } 105: -- Iteration 5 -- 106: array(1) { 107: ["float"]=> 108: float(2.3333) 109: } 110: -- Iteration 6 -- 111: array(4) { 112: ["f1"]=> 113: float(1.2) 114: ["f2"]=> 115: float(3.33) 116: [3]=> 117: float(4.8999992284) 118: ["f4"]=> 119: float(33333333.3333) 120: } 121: -- Iteration 7 -- 122: array(4) { 123: [111]=> 124: string(6) " Hello" 125: ["red"]=> 126: string(6) "col or" 127: [2]=> 128: string(7) "world" 129: [3]=> 130: string(4) "pen 131: " 132: } 133: -- Iteration 8 -- 134: array(4) { 135: [111]=> 136: string(7) "\tHello" 137: ["red"]=> 138: string(7) "col\tor" 139: [2]=> 140: string(9) "\v\fworld" 141: [3]=> 142: string(5) "pen\n" 143: } 144: -- Iteration 9 -- 145: array(2) { 146: [1]=> 147: string(5) "hello" 148: ["heredoc"]=> 149: string(11) "Hello world" 150: } 151: -- Iteration 10 -- 152: array(3) { 153: [11]=> 154: object(classA)#%d (0) { 155: } 156: ["unset"]=> 157: NULL 158: ["resource"]=> 159: resource(%d) of type (stream) 160: } 161: -- Iteration 11 -- 162: array(8) { 163: [1]=> 164: string(5) "hello" 165: [2]=> 166: object(classA)#%d (0) { 167: } 168: [222]=> 169: string(5) "fruit" 170: ["resource"]=> 171: resource(%d) of type (stream) 172: ["int"]=> 173: int(133) 174: ["float"]=> 175: float(444.432) 176: ["unset"]=> 177: NULL 178: ["heredoc"]=> 179: string(11) "Hello world" 180: } 181: Done