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>