1--TEST-- 2Test array_intersect_ukey() function : usage variation - Passing unexpected values to second argument 3--FILE-- 4<?php 5/* Prototype : array array_intersect_ukey(array arr1, array arr2 [, array ...], callback key_compare_func) 6 * Description: Computes the intersection of arrays using a callback function on the keys for comparison. 7 * Source code: ext/standard/array.c 8 */ 9 10echo "*** Testing array_intersect_ukey() : usage variation ***\n"; 11 12//Initialise arguments 13$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); 14$array3 = array('green' => 5, 'cyan' => 8); 15 16//Call back function 17function key_compare_func($key1, $key2) 18{ 19 if ($key1 == $key2) 20 return 0; 21 else 22 return ($key1 > $key2)? 1:-1; 23} 24 25//get an unset variable 26$unset_var = 10; 27unset ($unset_var); 28 29//resource variable 30$fp = fopen(__FILE__, "r"); 31 32// define some classes 33class classWithToString 34{ 35 public function __toString() { 36 return "Class A object"; 37 } 38} 39 40class classWithoutToString 41{ 42} 43 44// heredoc string 45$heredoc = <<<EOT 46hello world 47EOT; 48 49//array of values to iterate over 50$inputs = array( 51 52 // int data 53 'int 0' => 0, 54 'int 1' => 1, 55 'int 12345' => 12345, 56 'int -12345' => -12345, 57 58 // float data 59 'float 10.5' => 10.5, 60 'float -10.5' => -10.5, 61 'float 12.3456789000e10' => 12.3456789000e10, 62 'float -12.3456789000e10' => -12.3456789000e10, 63 'float .5' => .5, 64 65 // null data 66 'uppercase NULL' => NULL, 67 'lowercase null' => null, 68 69 // boolean data 70 'lowercase true' => true, 71 'lowercase false' =>false, 72 'uppercase TRUE' =>TRUE, 73 'uppercase FALSE' =>FALSE, 74 75 // empty data 76 'empty string DQ' => "", 77 'empty string SQ' => '', 78 79 // string data 80 'string DQ' => "string", 81 'string SQ' => 'string', 82 'mixed case string' => "sTrInG", 83 'heredoc' => $heredoc, 84 85 // object data 86 'instance of classWithToString' => new classWithToString(), 87 'instance of classWithoutToString' => new classWithoutToString(), 88 89 // undefined data 90 'undefined var' => @$undefined_var, 91 92 // unset data 93 'unset var' => @$unset_var, 94 95 // resource data 96 'resource var' => $fp, 97); 98 99// loop through each element of the array for arr2 100 101foreach($inputs as $key =>$value) { 102 echo "\n--$key--\n"; 103 var_dump( array_intersect_ukey($array1, $value, 'key_compare_func') ); 104 var_dump( array_intersect_ukey($array1, $value, $array3, 'key_compare_func') ); 105}; 106 107fclose($fp); 108?> 109===DONE=== 110--EXPECTF-- 111*** Testing array_intersect_ukey() : usage variation *** 112 113--int 0-- 114 115Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 116NULL 117 118Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 119NULL 120 121--int 1-- 122 123Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 124NULL 125 126Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 127NULL 128 129--int 12345-- 130 131Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 132NULL 133 134Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 135NULL 136 137--int -12345-- 138 139Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 140NULL 141 142Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 143NULL 144 145--float 10.5-- 146 147Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 148NULL 149 150Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 151NULL 152 153--float -10.5-- 154 155Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 156NULL 157 158Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 159NULL 160 161--float 12.3456789000e10-- 162 163Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 164NULL 165 166Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 167NULL 168 169--float -12.3456789000e10-- 170 171Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 172NULL 173 174Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 175NULL 176 177--float .5-- 178 179Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 180NULL 181 182Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 183NULL 184 185--uppercase NULL-- 186 187Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 188NULL 189 190Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 191NULL 192 193--lowercase null-- 194 195Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 196NULL 197 198Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 199NULL 200 201--lowercase true-- 202 203Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 204NULL 205 206Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 207NULL 208 209--lowercase false-- 210 211Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 212NULL 213 214Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 215NULL 216 217--uppercase TRUE-- 218 219Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 220NULL 221 222Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 223NULL 224 225--uppercase FALSE-- 226 227Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 228NULL 229 230Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 231NULL 232 233--empty string DQ-- 234 235Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 236NULL 237 238Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 239NULL 240 241--empty string SQ-- 242 243Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 244NULL 245 246Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 247NULL 248 249--string DQ-- 250 251Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 252NULL 253 254Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 255NULL 256 257--string SQ-- 258 259Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 260NULL 261 262Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 263NULL 264 265--mixed case string-- 266 267Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 268NULL 269 270Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 271NULL 272 273--heredoc-- 274 275Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 276NULL 277 278Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 279NULL 280 281--instance of classWithToString-- 282 283Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 284NULL 285 286Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 287NULL 288 289--instance of classWithoutToString-- 290 291Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 292NULL 293 294Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 295NULL 296 297--undefined var-- 298 299Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 300NULL 301 302Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 303NULL 304 305--unset var-- 306 307Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 308NULL 309 310Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 311NULL 312 313--resource var-- 314 315Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 316NULL 317 318Warning: array_intersect_ukey(): Argument #2 is not an array in %s on line %d 319NULL 320===DONE===