Return to array_key_exists_variation8.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_key_exists() function : usage variations - array keys are different data types 3: --FILE-- 4: <?php 5: /* Prototype : bool array_key_exists(mixed $key, array $search) 6: * Description: Checks if the given key or index exists in the array 7: * Source code: ext/standard/array.c 8: * Alias to functions: key_exists 9: */ 10: 11: /* 12: * Pass an array where the keys are different data types as the $search argument 13: * then pass many different data types as $key argument to test where array_key_exist() 14: * returns true. 15: */ 16: 17: echo "*** Testing array_key_exists() : usage variations ***\n"; 18: 19: //get an unset variable 20: $unset_var = 10; 21: unset ($unset_var); 22: 23: // heredoc string 24: $heredoc = <<<EOT 25: string 26: EOT; 27: 28: // different data types to be iterated over 29: $inputs = array( 30: 31: // int data 32: /*1*/ 'int' => array( 33: 0 => 'zero', 34: 1 => 'one', 35: 12345 => 'positive', 36: -2345 => 'negative', 37: ), 38: 39: // float data 40: /*2*/ 'float' => array( 41: 10.5 => 'positive', 42: -10.5 => 'negative', 43: .5 => 'half', 44: ), 45: 46: 'extreme floats' => array( 47: 12.3456789000e10 => 'large', 48: 12.3456789000E-10 => 'small', 49: ), 50: 51: // null data 52: /*3*/ 'null uppercase' => array( 53: NULL => 'null 1', 54: ), 55: 'null lowercase' => array( 56: null => 'null 2', 57: ), 58: 59: // boolean data 60: /*4*/ 'bool lowercase' => array( 61: true => 'lowert', 62: false => 'lowerf', 63: ), 64: 'bool uppercase' => array( 65: TRUE => 'uppert', 66: FALSE => 'upperf', 67: ), 68: 69: // empty data 70: /*5*/ 'empty double quotes' => array( 71: "" => 'emptyd', 72: ), 73: 'empty single quotes' => array( 74: '' => 'emptys', 75: ), 76: 77: // string data 78: /*6*/ 'string' => array( 79: "stringd" => 'stringd', 80: 'strings' => 'strings', 81: $heredoc => 'stringh', 82: ), 83: 84: // undefined data 85: /*8*/ 'undefined' => array( 86: @$undefined_var => 'undefined', 87: ), 88: 89: // unset data 90: /*9*/ 'unset' => array( 91: @$unset_var => 'unset', 92: ), 93: ); 94: 95: // loop through each element of $inputs to check the behavior of array_key_exists() 96: $iterator = 1; 97: foreach($inputs as $type => $input) { 98: echo "\n-- Iteration $iterator: $type data --\n"; 99: 100: //iterate over again to get all different key values 101: foreach ($inputs as $new_type => $new_input) { 102: echo "-- \$key arguments are $new_type data:\n"; 103: foreach ($new_input as $key => $search) { 104: var_dump(array_key_exists($key, $input)); 105: } 106: } 107: $iterator++; 108: }; 109: 110: echo "Done"; 111: ?> 112: 113: --EXPECTF-- 114: *** Testing array_key_exists() : usage variations *** 115: 116: -- Iteration 1: int data -- 117: -- $key arguments are int data: 118: bool(true) 119: bool(true) 120: bool(true) 121: bool(true) 122: -- $key arguments are float data: 123: bool(false) 124: bool(false) 125: bool(true) 126: -- $key arguments are extreme floats data: 127: bool(false) 128: bool(true) 129: -- $key arguments are null uppercase data: 130: bool(false) 131: -- $key arguments are null lowercase data: 132: bool(false) 133: -- $key arguments are bool lowercase data: 134: bool(true) 135: bool(true) 136: -- $key arguments are bool uppercase data: 137: bool(true) 138: bool(true) 139: -- $key arguments are empty double quotes data: 140: bool(false) 141: -- $key arguments are empty single quotes data: 142: bool(false) 143: -- $key arguments are string data: 144: bool(false) 145: bool(false) 146: bool(false) 147: -- $key arguments are undefined data: 148: bool(false) 149: -- $key arguments are unset data: 150: bool(false) 151: 152: -- Iteration 2: float data -- 153: -- $key arguments are int data: 154: bool(true) 155: bool(false) 156: bool(false) 157: bool(false) 158: -- $key arguments are float data: 159: bool(true) 160: bool(true) 161: bool(true) 162: -- $key arguments are extreme floats data: 163: bool(false) 164: bool(true) 165: -- $key arguments are null uppercase data: 166: bool(false) 167: -- $key arguments are null lowercase data: 168: bool(false) 169: -- $key arguments are bool lowercase data: 170: bool(false) 171: bool(true) 172: -- $key arguments are bool uppercase data: 173: bool(false) 174: bool(true) 175: -- $key arguments are empty double quotes data: 176: bool(false) 177: -- $key arguments are empty single quotes data: 178: bool(false) 179: -- $key arguments are string data: 180: bool(false) 181: bool(false) 182: bool(false) 183: -- $key arguments are undefined data: 184: bool(false) 185: -- $key arguments are unset data: 186: bool(false) 187: 188: -- Iteration 3: extreme floats data -- 189: -- $key arguments are int data: 190: bool(true) 191: bool(false) 192: bool(false) 193: bool(false) 194: -- $key arguments are float data: 195: bool(false) 196: bool(false) 197: bool(true) 198: -- $key arguments are extreme floats data: 199: bool(true) 200: bool(true) 201: -- $key arguments are null uppercase data: 202: bool(false) 203: -- $key arguments are null lowercase data: 204: bool(false) 205: -- $key arguments are bool lowercase data: 206: bool(false) 207: bool(true) 208: -- $key arguments are bool uppercase data: 209: bool(false) 210: bool(true) 211: -- $key arguments are empty double quotes data: 212: bool(false) 213: -- $key arguments are empty single quotes data: 214: bool(false) 215: -- $key arguments are string data: 216: bool(false) 217: bool(false) 218: bool(false) 219: -- $key arguments are undefined data: 220: bool(false) 221: -- $key arguments are unset data: 222: bool(false) 223: 224: -- Iteration 4: null uppercase data -- 225: -- $key arguments are int data: 226: bool(false) 227: bool(false) 228: bool(false) 229: bool(false) 230: -- $key arguments are float data: 231: bool(false) 232: bool(false) 233: bool(false) 234: -- $key arguments are extreme floats data: 235: bool(false) 236: bool(false) 237: -- $key arguments are null uppercase data: 238: bool(true) 239: -- $key arguments are null lowercase data: 240: bool(true) 241: -- $key arguments are bool lowercase data: 242: bool(false) 243: bool(false) 244: -- $key arguments are bool uppercase data: 245: bool(false) 246: bool(false) 247: -- $key arguments are empty double quotes data: 248: bool(true) 249: -- $key arguments are empty single quotes data: 250: bool(true) 251: -- $key arguments are string data: 252: bool(false) 253: bool(false) 254: bool(false) 255: -- $key arguments are undefined data: 256: bool(true) 257: -- $key arguments are unset data: 258: bool(true) 259: 260: -- Iteration 5: null lowercase data -- 261: -- $key arguments are int data: 262: bool(false) 263: bool(false) 264: bool(false) 265: bool(false) 266: -- $key arguments are float data: 267: bool(false) 268: bool(false) 269: bool(false) 270: -- $key arguments are extreme floats data: 271: bool(false) 272: bool(false) 273: -- $key arguments are null uppercase data: 274: bool(true) 275: -- $key arguments are null lowercase data: 276: bool(true) 277: -- $key arguments are bool lowercase data: 278: bool(false) 279: bool(false) 280: -- $key arguments are bool uppercase data: 281: bool(false) 282: bool(false) 283: -- $key arguments are empty double quotes data: 284: bool(true) 285: -- $key arguments are empty single quotes data: 286: bool(true) 287: -- $key arguments are string data: 288: bool(false) 289: bool(false) 290: bool(false) 291: -- $key arguments are undefined data: 292: bool(true) 293: -- $key arguments are unset data: 294: bool(true) 295: 296: -- Iteration 6: bool lowercase data -- 297: -- $key arguments are int data: 298: bool(true) 299: bool(true) 300: bool(false) 301: bool(false) 302: -- $key arguments are float data: 303: bool(false) 304: bool(false) 305: bool(true) 306: -- $key arguments are extreme floats data: 307: bool(false) 308: bool(true) 309: -- $key arguments are null uppercase data: 310: bool(false) 311: -- $key arguments are null lowercase data: 312: bool(false) 313: -- $key arguments are bool lowercase data: 314: bool(true) 315: bool(true) 316: -- $key arguments are bool uppercase data: 317: bool(true) 318: bool(true) 319: -- $key arguments are empty double quotes data: 320: bool(false) 321: -- $key arguments are empty single quotes data: 322: bool(false) 323: -- $key arguments are string data: 324: bool(false) 325: bool(false) 326: bool(false) 327: -- $key arguments are undefined data: 328: bool(false) 329: -- $key arguments are unset data: 330: bool(false) 331: 332: -- Iteration 7: bool uppercase data -- 333: -- $key arguments are int data: 334: bool(true) 335: bool(true) 336: bool(false) 337: bool(false) 338: -- $key arguments are float data: 339: bool(false) 340: bool(false) 341: bool(true) 342: -- $key arguments are extreme floats data: 343: bool(false) 344: bool(true) 345: -- $key arguments are null uppercase data: 346: bool(false) 347: -- $key arguments are null lowercase data: 348: bool(false) 349: -- $key arguments are bool lowercase data: 350: bool(true) 351: bool(true) 352: -- $key arguments are bool uppercase data: 353: bool(true) 354: bool(true) 355: -- $key arguments are empty double quotes data: 356: bool(false) 357: -- $key arguments are empty single quotes data: 358: bool(false) 359: -- $key arguments are string data: 360: bool(false) 361: bool(false) 362: bool(false) 363: -- $key arguments are undefined data: 364: bool(false) 365: -- $key arguments are unset data: 366: bool(false) 367: 368: -- Iteration 8: empty double quotes data -- 369: -- $key arguments are int data: 370: bool(false) 371: bool(false) 372: bool(false) 373: bool(false) 374: -- $key arguments are float data: 375: bool(false) 376: bool(false) 377: bool(false) 378: -- $key arguments are extreme floats data: 379: bool(false) 380: bool(false) 381: -- $key arguments are null uppercase data: 382: bool(true) 383: -- $key arguments are null lowercase data: 384: bool(true) 385: -- $key arguments are bool lowercase data: 386: bool(false) 387: bool(false) 388: -- $key arguments are bool uppercase data: 389: bool(false) 390: bool(false) 391: -- $key arguments are empty double quotes data: 392: bool(true) 393: -- $key arguments are empty single quotes data: 394: bool(true) 395: -- $key arguments are string data: 396: bool(false) 397: bool(false) 398: bool(false) 399: -- $key arguments are undefined data: 400: bool(true) 401: -- $key arguments are unset data: 402: bool(true) 403: 404: -- Iteration 9: empty single quotes data -- 405: -- $key arguments are int data: 406: bool(false) 407: bool(false) 408: bool(false) 409: bool(false) 410: -- $key arguments are float data: 411: bool(false) 412: bool(false) 413: bool(false) 414: -- $key arguments are extreme floats data: 415: bool(false) 416: bool(false) 417: -- $key arguments are null uppercase data: 418: bool(true) 419: -- $key arguments are null lowercase data: 420: bool(true) 421: -- $key arguments are bool lowercase data: 422: bool(false) 423: bool(false) 424: -- $key arguments are bool uppercase data: 425: bool(false) 426: bool(false) 427: -- $key arguments are empty double quotes data: 428: bool(true) 429: -- $key arguments are empty single quotes data: 430: bool(true) 431: -- $key arguments are string data: 432: bool(false) 433: bool(false) 434: bool(false) 435: -- $key arguments are undefined data: 436: bool(true) 437: -- $key arguments are unset data: 438: bool(true) 439: 440: -- Iteration 10: string data -- 441: -- $key arguments are int data: 442: bool(false) 443: bool(false) 444: bool(false) 445: bool(false) 446: -- $key arguments are float data: 447: bool(false) 448: bool(false) 449: bool(false) 450: -- $key arguments are extreme floats data: 451: bool(false) 452: bool(false) 453: -- $key arguments are null uppercase data: 454: bool(false) 455: -- $key arguments are null lowercase data: 456: bool(false) 457: -- $key arguments are bool lowercase data: 458: bool(false) 459: bool(false) 460: -- $key arguments are bool uppercase data: 461: bool(false) 462: bool(false) 463: -- $key arguments are empty double quotes data: 464: bool(false) 465: -- $key arguments are empty single quotes data: 466: bool(false) 467: -- $key arguments are string data: 468: bool(true) 469: bool(true) 470: bool(true) 471: -- $key arguments are undefined data: 472: bool(false) 473: -- $key arguments are unset data: 474: bool(false) 475: 476: -- Iteration 11: undefined data -- 477: -- $key arguments are int data: 478: bool(false) 479: bool(false) 480: bool(false) 481: bool(false) 482: -- $key arguments are float data: 483: bool(false) 484: bool(false) 485: bool(false) 486: -- $key arguments are extreme floats data: 487: bool(false) 488: bool(false) 489: -- $key arguments are null uppercase data: 490: bool(true) 491: -- $key arguments are null lowercase data: 492: bool(true) 493: -- $key arguments are bool lowercase data: 494: bool(false) 495: bool(false) 496: -- $key arguments are bool uppercase data: 497: bool(false) 498: bool(false) 499: -- $key arguments are empty double quotes data: 500: bool(true) 501: -- $key arguments are empty single quotes data: 502: bool(true) 503: -- $key arguments are string data: 504: bool(false) 505: bool(false) 506: bool(false) 507: -- $key arguments are undefined data: 508: bool(true) 509: -- $key arguments are unset data: 510: bool(true) 511: 512: -- Iteration 12: unset data -- 513: -- $key arguments are int data: 514: bool(false) 515: bool(false) 516: bool(false) 517: bool(false) 518: -- $key arguments are float data: 519: bool(false) 520: bool(false) 521: bool(false) 522: -- $key arguments are extreme floats data: 523: bool(false) 524: bool(false) 525: -- $key arguments are null uppercase data: 526: bool(true) 527: -- $key arguments are null lowercase data: 528: bool(true) 529: -- $key arguments are bool lowercase data: 530: bool(false) 531: bool(false) 532: -- $key arguments are bool uppercase data: 533: bool(false) 534: bool(false) 535: -- $key arguments are empty double quotes data: 536: bool(true) 537: -- $key arguments are empty single quotes data: 538: bool(true) 539: -- $key arguments are string data: 540: bool(false) 541: bool(false) 542: bool(false) 543: -- $key arguments are undefined data: 544: bool(true) 545: -- $key arguments are unset data: 546: bool(true) 547: Done