Return to array_shift_variation3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
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