1--TEST-- 2Test array_change_key_case() function : usage variations - Pass different data types as $case arg 3--FILE-- 4<?php 5/* Prototype : array array_change_key_case(array $input [, int $case]) 6 * Description: Retuns an array with all string keys lowercased [or uppercased] 7 * Source code: ext/standard/array.c 8 */ 9 10/* 11 * Pass different data types as $case argument to array_change_key_case() to test behaviour 12 * Where possible, CASE_UPPER has been entered as a string value 13 */ 14 15echo "*** Testing array_change_key_case() : usage variations ***\n"; 16 17// Initialise function arguments not being substituted 18$array = array ('one' => 1, 'TWO' => 2, 'Three' => 3); 19 20//get an unset variable 21$unset_var = 10; 22unset ($unset_var); 23 24// heredoc string 25$heredoc = <<<EOT 26CASE_UPPER 27EOT; 28 29// get a resource variable 30$fp = fopen(__FILE__, "r"); 31 32// unexpected values to be passed to $case argument 33$inputs = array( 34 35 // int data 36/*1*/ 0, 37 1, 38 12345, 39 -2345, 40 41 // float data 42/*5*/ 10.5, 43 -10.5, 44 12.3456789000e10, 45 12.3456789000E-10, 46 .5, 47 48 // null data 49/*10*/ NULL, 50 null, 51 52 // boolean data 53/*12*/ true, 54 false, 55 TRUE, 56 FALSE, 57 58 // empty data 59/*16*/ "", 60 '', 61 array(), 62 63 // string data 64/*19*/ "CASE_UPPER", 65 'CASE_UPPER', 66 $heredoc, 67 68 // undefined data 69/*22*/ @$undefined_var, 70 71 // unset data 72/*23*/ @$unset_var, 73); 74 75// loop through each element of $inputs to check the behavior of array_change_key_case() 76$iterator = 1; 77foreach($inputs as $input) { 78 echo "\n-- Iteration $iterator --\n"; 79 var_dump( array_change_key_case($array, $input) ); 80 $iterator++; 81}; 82 83echo "Done"; 84?> 85 86--EXPECTF-- 87*** Testing array_change_key_case() : usage variations *** 88 89-- Iteration 1 -- 90array(3) { 91 ["one"]=> 92 int(1) 93 ["two"]=> 94 int(2) 95 ["three"]=> 96 int(3) 97} 98 99-- Iteration 2 -- 100array(3) { 101 ["ONE"]=> 102 int(1) 103 ["TWO"]=> 104 int(2) 105 ["THREE"]=> 106 int(3) 107} 108 109-- Iteration 3 -- 110array(3) { 111 ["ONE"]=> 112 int(1) 113 ["TWO"]=> 114 int(2) 115 ["THREE"]=> 116 int(3) 117} 118 119-- Iteration 4 -- 120array(3) { 121 ["ONE"]=> 122 int(1) 123 ["TWO"]=> 124 int(2) 125 ["THREE"]=> 126 int(3) 127} 128 129-- Iteration 5 -- 130array(3) { 131 ["ONE"]=> 132 int(1) 133 ["TWO"]=> 134 int(2) 135 ["THREE"]=> 136 int(3) 137} 138 139-- Iteration 6 -- 140array(3) { 141 ["ONE"]=> 142 int(1) 143 ["TWO"]=> 144 int(2) 145 ["THREE"]=> 146 int(3) 147} 148 149-- Iteration 7 -- 150array(3) { 151 ["ONE"]=> 152 int(1) 153 ["TWO"]=> 154 int(2) 155 ["THREE"]=> 156 int(3) 157} 158 159-- Iteration 8 -- 160array(3) { 161 ["one"]=> 162 int(1) 163 ["two"]=> 164 int(2) 165 ["three"]=> 166 int(3) 167} 168 169-- Iteration 9 -- 170array(3) { 171 ["one"]=> 172 int(1) 173 ["two"]=> 174 int(2) 175 ["three"]=> 176 int(3) 177} 178 179-- Iteration 10 -- 180array(3) { 181 ["one"]=> 182 int(1) 183 ["two"]=> 184 int(2) 185 ["three"]=> 186 int(3) 187} 188 189-- Iteration 11 -- 190array(3) { 191 ["one"]=> 192 int(1) 193 ["two"]=> 194 int(2) 195 ["three"]=> 196 int(3) 197} 198 199-- Iteration 12 -- 200array(3) { 201 ["ONE"]=> 202 int(1) 203 ["TWO"]=> 204 int(2) 205 ["THREE"]=> 206 int(3) 207} 208 209-- Iteration 13 -- 210array(3) { 211 ["one"]=> 212 int(1) 213 ["two"]=> 214 int(2) 215 ["three"]=> 216 int(3) 217} 218 219-- Iteration 14 -- 220array(3) { 221 ["ONE"]=> 222 int(1) 223 ["TWO"]=> 224 int(2) 225 ["THREE"]=> 226 int(3) 227} 228 229-- Iteration 15 -- 230array(3) { 231 ["one"]=> 232 int(1) 233 ["two"]=> 234 int(2) 235 ["three"]=> 236 int(3) 237} 238 239-- Iteration 16 -- 240 241Warning: array_change_key_case() expects parameter 2 to be long, string given in %s on line %d 242NULL 243 244-- Iteration 17 -- 245 246Warning: array_change_key_case() expects parameter 2 to be long, string given in %s on line %d 247NULL 248 249-- Iteration 18 -- 250 251Warning: array_change_key_case() expects parameter 2 to be long, array given in %s on line %d 252NULL 253 254-- Iteration 19 -- 255 256Warning: array_change_key_case() expects parameter 2 to be long, string given in %s on line %d 257NULL 258 259-- Iteration 20 -- 260 261Warning: array_change_key_case() expects parameter 2 to be long, string given in %s on line %d 262NULL 263 264-- Iteration 21 -- 265 266Warning: array_change_key_case() expects parameter 2 to be long, string given in %s on line %d 267NULL 268 269-- Iteration 22 -- 270array(3) { 271 ["one"]=> 272 int(1) 273 ["two"]=> 274 int(2) 275 ["three"]=> 276 int(3) 277} 278 279-- Iteration 23 -- 280array(3) { 281 ["one"]=> 282 int(1) 283 ["two"]=> 284 int(2) 285 ["three"]=> 286 int(3) 287} 288Done