1--TEST-- 2Test array_uintersect() function : usage variation - differing comparison functions 3--FILE-- 4<?php 5/* Prototype : array array_uintersect(array arr1, array arr2 [, array ...], callback data_compare_func) 6 * Description: Returns the entries of arr1 that have values which are present in all the other arguments. Data is compared by using an user-supplied callback. 7 * Source code: ext/standard/array.c 8 * Alias to functions: 9 */ 10 11echo "*** Testing array_uintersect() : usage variation - differing comparison functions***\n"; 12 13$arr1 = array(1); 14$arr2 = array(1,2); 15 16echo "\n-- comparison function with an incorrect return value --\n"; 17function incorrect_return_value ($val1, $val2) { 18 return array(1); 19} 20var_dump(array_uintersect($arr1, $arr2, 'incorrect_return_value')); 21 22echo "\n-- comparison function taking too many parameters --\n"; 23function too_many_parameters ($val1, $val2, $val3) { 24 return 1; 25} 26try { 27 var_dump(array_uintersect($arr1, $arr2, 'too_many_parameters')); 28} catch (Throwable $e) { 29 echo "Exception: " . $e->getMessage() . "\n"; 30} 31 32echo "\n-- comparison function taking too few parameters --\n"; 33function too_few_parameters ($val1) { 34 return 1; 35} 36var_dump(array_uintersect($arr1, $arr2, 'too_few_parameters')); 37 38?> 39 40===DONE=== 41--EXPECT-- 42*** Testing array_uintersect() : usage variation - differing comparison functions*** 43 44-- comparison function with an incorrect return value -- 45array(0) { 46} 47 48-- comparison function taking too many parameters -- 49Exception: Too few arguments to function too_many_parameters(), 2 passed and exactly 3 expected 50 51-- comparison function taking too few parameters -- 52array(0) { 53} 54 55===DONE=== 56