1--TEST-- 2Test array_intersect_ukey() function : usage variation - Passing unexpected values to callback 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$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); 15$array3 = array('green' => 5, 'cyan' => 8); 16 17//get an unset variable 18$unset_var = 10; 19unset ($unset_var); 20 21//resource variable 22$fp = fopen(__FILE__, "r"); 23 24// define some classes 25class classWithToString 26{ 27 public function __toString() { 28 return "Class A object"; 29 } 30} 31 32class classWithoutToString 33{ 34} 35 36// add arrays 37$index_array = array (1, 2, 3); 38$assoc_array = array ('one' => 1, 'two' => 2); 39 40//array of values to iterate over 41$inputs = array( 42 43 // int data 44 'int 0' => 0, 45 'int 1' => 1, 46 'int 12345' => 12345, 47 'int -12345' => -12345, 48 49 // float data 50 'float 10.5' => 10.5, 51 'float -10.5' => -10.5, 52 'float 12.3456789000e10' => 12.3456789000e10, 53 'float -12.3456789000e10' => -12.3456789000e10, 54 'float .5' => .5, 55 56 // array data 57 'empty array' => array(), 58 'int indexed array' => $index_array, 59 'associative array' => $assoc_array, 60 'nested arrays' => array('foo', $index_array, $assoc_array), 61 62 // null data 63 'uppercase NULL' => NULL, 64 'lowercase null' => null, 65 66 // boolean data 67 'lowercase true' => true, 68 'lowercase false' =>false, 69 'uppercase TRUE' =>TRUE, 70 'uppercase FALSE' =>FALSE, 71 72 // object data 73 'instance of classWithToString' => new classWithToString(), 74 'instance of classWithoutToString' => new classWithoutToString(), 75 76 // undefined data 77 'undefined var' => @$undefined_var, 78 79 // unset data 80 'unset var' => @$unset_var, 81 82 // resource data 83 'resource var' => $fp, 84); 85 86// loop through each element of the array for key_compare_func 87foreach($inputs as $key =>$value) { 88 echo "\n--$key--\n"; 89 var_dump( array_intersect_ukey($array1, $array2, $value) ); 90 var_dump( array_intersect_ukey($array1, $array2, $array3, $value) ); 91}; 92 93fclose($fp); 94?> 95===DONE=== 96--EXPECTF-- 97*** Testing array_intersect_ukey() : usage variation *** 98 99--int 0-- 100 101Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 102NULL 103 104Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 105NULL 106 107--int 1-- 108 109Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 110NULL 111 112Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 113NULL 114 115--int 12345-- 116 117Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 118NULL 119 120Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 121NULL 122 123--int -12345-- 124 125Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 126NULL 127 128Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 129NULL 130 131--float 10.5-- 132 133Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 134NULL 135 136Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 137NULL 138 139--float -10.5-- 140 141Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 142NULL 143 144Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 145NULL 146 147--float 12.3456789000e10-- 148 149Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 150NULL 151 152Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 153NULL 154 155--float -12.3456789000e10-- 156 157Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 158NULL 159 160Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 161NULL 162 163--float .5-- 164 165Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 166NULL 167 168Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 169NULL 170 171--empty array-- 172 173Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, array must have exactly two members in %s on line %d 174NULL 175 176Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, array must have exactly two members in %s on line %d 177NULL 178 179--int indexed array-- 180 181Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, array must have exactly two members in %s on line %d 182NULL 183 184Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, array must have exactly two members in %s on line %d 185NULL 186 187--associative array-- 188 189Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, first array member is not a valid class name or object in %s on line %d 190NULL 191 192Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, first array member is not a valid class name or object in %s on line %d 193NULL 194 195--nested arrays-- 196 197Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, array must have exactly two members in %s on line %d 198NULL 199 200Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, array must have exactly two members in %s on line %d 201NULL 202 203--uppercase NULL-- 204 205Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 206NULL 207 208Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 209NULL 210 211--lowercase null-- 212 213Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 214NULL 215 216Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 217NULL 218 219--lowercase true-- 220 221Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 222NULL 223 224Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 225NULL 226 227--lowercase false-- 228 229Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 230NULL 231 232Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 233NULL 234 235--uppercase TRUE-- 236 237Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 238NULL 239 240Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 241NULL 242 243--uppercase FALSE-- 244 245Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 246NULL 247 248Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 249NULL 250 251--instance of classWithToString-- 252 253Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 254NULL 255 256Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 257NULL 258 259--instance of classWithoutToString-- 260 261Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 262NULL 263 264Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 265NULL 266 267--undefined var-- 268 269Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 270NULL 271 272Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 273NULL 274 275--unset var-- 276 277Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 278NULL 279 280Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 281NULL 282 283--resource var-- 284 285Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d 286NULL 287 288Warning: array_intersect_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d 289NULL 290===DONE===