Annotation of embedaddon/php/ext/standard/tests/array/array_key_exists_variation8.phpt, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>