Return to array_merge_variation3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_merge() function : usage variations - arrays of diff. data types 3: --FILE-- 4: <?php 5: /* Prototype : array array_merge(array $arr1, array $arr2 [, array $...]) 6: * Description: Merges elements from passed arrays into one array 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * Pass arrays of different data types to test how array_merge adds them 12: * onto an existing array 13: */ 14: 15: echo "*** Testing array_merge() : usage variations ***\n"; 16: 17: // Initialise function arguments not being substituted 18: $arr = array (1, 2); 19: 20: //get an unset variable 21: $unset_var = 10; 22: unset ($unset_var); 23: 24: // get a class 25: class classA 26: { 27: public function __toString() { 28: return "Class A object"; 29: } 30: } 31: 32: // heredoc string 33: $heredoc = <<<EOT 34: hello world 35: EOT; 36: 37: // get a resource variable 38: $fp = fopen(__FILE__, "r"); 39: 40: // arrays of different data types to be passed as $input 41: $inputs = array( 42: 43: // int data 44: /*1*/ 'int' => array( 45: 0, 46: 1, 47: 12345, 48: -2345, 49: ), 50: 51: // float data 52: /*2*/ 'float' => array( 53: 10.5, 54: -10.5, 55: 12.3456789000e10, 56: 12.3456789000E-10, 57: .5, 58: ), 59: 60: // null data 61: /*3*/ 'null' => array( 62: NULL, 63: null, 64: ), 65: 66: // boolean data 67: /*4*/ 'bool' => array( 68: true, 69: false, 70: TRUE, 71: FALSE, 72: ), 73: 74: // empty data 75: /*5*/ 'empty string' => array( 76: "", 77: '', 78: ), 79: 80: /*6*/ 'empty array' => array( 81: ), 82: 83: // string data 84: /*7*/ 'string' => array( 85: "string", 86: 'string', 87: $heredoc, 88: ), 89: 90: // object data 91: /*8*/ 'object' => array( 92: new classA(), 93: ), 94: 95: // undefined data 96: /*9*/ 'undefined' => array( 97: @$undefined_var, 98: ), 99: 100: // unset data 101: /*10*/ 'unset' => array( 102: @$unset_var, 103: ), 104: 105: // resource variable 106: /*11*/ 'resource' => array( 107: $fp 108: ), 109: ); 110: 111: // loop through each element of $inputs to check the behavior of array_merge 112: $iterator = 1; 113: foreach($inputs as $key => $input) { 114: echo "\n-- Iteration $iterator: $key data --\n"; 115: var_dump( array_merge($input, $arr) ); 116: var_dump( array_merge($arr, $input) ); 117: $iterator++; 118: }; 119: 120: fclose($fp); 121: 122: echo "Done"; 123: ?> 124: 125: --EXPECTF-- 126: *** Testing array_merge() : usage variations *** 127: 128: -- Iteration 1: int data -- 129: array(6) { 130: [0]=> 131: int(0) 132: [1]=> 133: int(1) 134: [2]=> 135: int(12345) 136: [3]=> 137: int(-2345) 138: [4]=> 139: int(1) 140: [5]=> 141: int(2) 142: } 143: array(6) { 144: [0]=> 145: int(1) 146: [1]=> 147: int(2) 148: [2]=> 149: int(0) 150: [3]=> 151: int(1) 152: [4]=> 153: int(12345) 154: [5]=> 155: int(-2345) 156: } 157: 158: -- Iteration 2: float data -- 159: array(7) { 160: [0]=> 161: float(10.5) 162: [1]=> 163: float(-10.5) 164: [2]=> 165: float(123456789000) 166: [3]=> 167: float(1.23456789E-9) 168: [4]=> 169: float(0.5) 170: [5]=> 171: int(1) 172: [6]=> 173: int(2) 174: } 175: array(7) { 176: [0]=> 177: int(1) 178: [1]=> 179: int(2) 180: [2]=> 181: float(10.5) 182: [3]=> 183: float(-10.5) 184: [4]=> 185: float(123456789000) 186: [5]=> 187: float(1.23456789E-9) 188: [6]=> 189: float(0.5) 190: } 191: 192: -- Iteration 3: null data -- 193: array(4) { 194: [0]=> 195: NULL 196: [1]=> 197: NULL 198: [2]=> 199: int(1) 200: [3]=> 201: int(2) 202: } 203: array(4) { 204: [0]=> 205: int(1) 206: [1]=> 207: int(2) 208: [2]=> 209: NULL 210: [3]=> 211: NULL 212: } 213: 214: -- Iteration 4: bool data -- 215: array(6) { 216: [0]=> 217: bool(true) 218: [1]=> 219: bool(false) 220: [2]=> 221: bool(true) 222: [3]=> 223: bool(false) 224: [4]=> 225: int(1) 226: [5]=> 227: int(2) 228: } 229: array(6) { 230: [0]=> 231: int(1) 232: [1]=> 233: int(2) 234: [2]=> 235: bool(true) 236: [3]=> 237: bool(false) 238: [4]=> 239: bool(true) 240: [5]=> 241: bool(false) 242: } 243: 244: -- Iteration 5: empty string data -- 245: array(4) { 246: [0]=> 247: string(0) "" 248: [1]=> 249: string(0) "" 250: [2]=> 251: int(1) 252: [3]=> 253: int(2) 254: } 255: array(4) { 256: [0]=> 257: int(1) 258: [1]=> 259: int(2) 260: [2]=> 261: string(0) "" 262: [3]=> 263: string(0) "" 264: } 265: 266: -- Iteration 6: empty array data -- 267: array(2) { 268: [0]=> 269: int(1) 270: [1]=> 271: int(2) 272: } 273: array(2) { 274: [0]=> 275: int(1) 276: [1]=> 277: int(2) 278: } 279: 280: -- Iteration 7: string data -- 281: array(5) { 282: [0]=> 283: string(6) "string" 284: [1]=> 285: string(6) "string" 286: [2]=> 287: string(11) "hello world" 288: [3]=> 289: int(1) 290: [4]=> 291: int(2) 292: } 293: array(5) { 294: [0]=> 295: int(1) 296: [1]=> 297: int(2) 298: [2]=> 299: string(6) "string" 300: [3]=> 301: string(6) "string" 302: [4]=> 303: string(11) "hello world" 304: } 305: 306: -- Iteration 8: object data -- 307: array(3) { 308: [0]=> 309: object(classA)#%d (0) { 310: } 311: [1]=> 312: int(1) 313: [2]=> 314: int(2) 315: } 316: array(3) { 317: [0]=> 318: int(1) 319: [1]=> 320: int(2) 321: [2]=> 322: object(classA)#%d (0) { 323: } 324: } 325: 326: -- Iteration 9: undefined data -- 327: array(3) { 328: [0]=> 329: NULL 330: [1]=> 331: int(1) 332: [2]=> 333: int(2) 334: } 335: array(3) { 336: [0]=> 337: int(1) 338: [1]=> 339: int(2) 340: [2]=> 341: NULL 342: } 343: 344: -- Iteration 10: unset data -- 345: array(3) { 346: [0]=> 347: NULL 348: [1]=> 349: int(1) 350: [2]=> 351: int(2) 352: } 353: array(3) { 354: [0]=> 355: int(1) 356: [1]=> 357: int(2) 358: [2]=> 359: NULL 360: } 361: 362: -- Iteration 11: resource data -- 363: array(3) { 364: [0]=> 365: resource(%d) of type (stream) 366: [1]=> 367: int(1) 368: [2]=> 369: int(2) 370: } 371: array(3) { 372: [0]=> 373: int(1) 374: [1]=> 375: int(2) 376: [2]=> 377: resource(%d) of type (stream) 378: } 379: Done