Annotation of embedaddon/php/ext/standard/tests/array/array_shift_variation3.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test array_shift() function : usage variations - Pass array with different data types as keys
        !             3: --FILE--
        !             4: <?php
        !             5: /* Prototype  : mixed array_shift(array &$stack)
        !             6:  * Description: Pops an element off the beginning of the array 
        !             7:  * Source code: ext/standard/array.c
        !             8:  */
        !             9: 
        !            10: /*
        !            11:  * Pass arrays with different data types as keys to test how array_shift() re-assigns keys
        !            12:  */
        !            13: 
        !            14: echo "*** Testing array_shift() : usage variations ***\n";
        !            15: 
        !            16: //get an unset variable
        !            17: $unset_var = 10;
        !            18: unset ($unset_var);
        !            19: 
        !            20: // heredoc string
        !            21: $heredoc = <<<EOT
        !            22: hello world
        !            23: EOT;
        !            24: 
        !            25: // unexpected values to be passed to $stack argument
        !            26: $inputs = array(
        !            27: 
        !            28:        // int data
        !            29: /*1*/  'int' => array(
        !            30:        0 => 'zero',
        !            31:        1 => 'one',
        !            32:        12345 => 'positive',
        !            33:        -2345 => 'negative',
        !            34:        ),
        !            35: 
        !            36:        // float data
        !            37: /*2*/  'float' => array(
        !            38:        10.5 => 'positive',
        !            39:        -10.5 => 'negative',
        !            40:        .5 => 'half',
        !            41:        ),
        !            42:        
        !            43: /*3*/  'extreme floats' => array(
        !            44:        12.3456789000e10 => 'large',
        !            45:        12.3456789000E-10 => 'small',
        !            46:        ),
        !            47: 
        !            48:        // null data
        !            49: /*4*/  'null uppercase' => array(
        !            50:        NULL => 'null 1',
        !            51:        ), 
        !            52:        
        !            53: /*5*/  'null lowercase' => array(
        !            54:        null => 'null 2',
        !            55:        ),
        !            56: 
        !            57:        // boolean data
        !            58: /*6*/  'bool lowercase' => array(
        !            59:        true => 'lowert',
        !            60:        false => 'lowerf',
        !            61:        ),
        !            62:        
        !            63: /*7*/  'bool uppercase' => array(
        !            64:        TRUE => 'uppert',
        !            65:        FALSE => 'upperf',
        !            66:        ),
        !            67:        
        !            68:        // empty data
        !            69: /*8*/  'empty double quotes' => array(
        !            70:        "" => 'emptyd',
        !            71:        ),
        !            72:        
        !            73: /*9*/  'empty single quotes' => array(
        !            74:        '' => 'emptys',
        !            75:        ),
        !            76: 
        !            77:        // string data
        !            78: /*10*/ 'string' => array(
        !            79:        "stringd" => 'stringd',
        !            80:        'strings' => 'strings',
        !            81:        $heredoc => 'stringh',
        !            82:        ),
        !            83: 
        !            84:        // undefined data
        !            85: /*11*/ 'undefined' => array(
        !            86:        @$undefined_var => 'undefined',
        !            87:        ),
        !            88: 
        !            89:        // unset data
        !            90: /*12*/ 'unset' => array(
        !            91:        @$unset_var => 'unset',
        !            92:        ),
        !            93: );
        !            94: 
        !            95: // loop through each element of $inputs to check the behavior of array_shift()
        !            96: $iterator = 1;
        !            97: foreach($inputs as $key => $input) {
        !            98:   echo "\n-- Iteration $iterator : $key data --\n";
        !            99:   var_dump( array_shift($input) );
        !           100:   var_dump($input);
        !           101:   $iterator++;
        !           102: };
        !           103: 
        !           104: echo "Done";
        !           105: ?>
        !           106: --EXPECTF--
        !           107: *** Testing array_shift() : usage variations ***
        !           108: 
        !           109: -- Iteration 1 : int data --
        !           110: string(4) "zero"
        !           111: array(3) {
        !           112:   [0]=>
        !           113:   string(3) "one"
        !           114:   [1]=>
        !           115:   string(8) "positive"
        !           116:   [2]=>
        !           117:   string(8) "negative"
        !           118: }
        !           119: 
        !           120: -- Iteration 2 : float data --
        !           121: string(8) "positive"
        !           122: array(2) {
        !           123:   [0]=>
        !           124:   string(8) "negative"
        !           125:   [1]=>
        !           126:   string(4) "half"
        !           127: }
        !           128: 
        !           129: -- Iteration 3 : extreme floats data --
        !           130: string(5) "large"
        !           131: array(1) {
        !           132:   [0]=>
        !           133:   string(5) "small"
        !           134: }
        !           135: 
        !           136: -- Iteration 4 : null uppercase data --
        !           137: string(6) "null 1"
        !           138: array(0) {
        !           139: }
        !           140: 
        !           141: -- Iteration 5 : null lowercase data --
        !           142: string(6) "null 2"
        !           143: array(0) {
        !           144: }
        !           145: 
        !           146: -- Iteration 6 : bool lowercase data --
        !           147: string(6) "lowert"
        !           148: array(1) {
        !           149:   [0]=>
        !           150:   string(6) "lowerf"
        !           151: }
        !           152: 
        !           153: -- Iteration 7 : bool uppercase data --
        !           154: string(6) "uppert"
        !           155: array(1) {
        !           156:   [0]=>
        !           157:   string(6) "upperf"
        !           158: }
        !           159: 
        !           160: -- Iteration 8 : empty double quotes data --
        !           161: string(6) "emptyd"
        !           162: array(0) {
        !           163: }
        !           164: 
        !           165: -- Iteration 9 : empty single quotes data --
        !           166: string(6) "emptys"
        !           167: array(0) {
        !           168: }
        !           169: 
        !           170: -- Iteration 10 : string data --
        !           171: string(7) "stringd"
        !           172: array(2) {
        !           173:   ["strings"]=>
        !           174:   string(7) "strings"
        !           175:   ["hello world"]=>
        !           176:   string(7) "stringh"
        !           177: }
        !           178: 
        !           179: -- Iteration 11 : undefined data --
        !           180: string(9) "undefined"
        !           181: array(0) {
        !           182: }
        !           183: 
        !           184: -- Iteration 12 : unset data --
        !           185: string(5) "unset"
        !           186: array(0) {
        !           187: }
        !           188: Done

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