1--TEST--
2Test array_uintersect_assoc() function : usage variation - differing comparison functions
3--FILE--
4<?php
5echo "*** Testing array_uintersect_assoc() : usage variation - differing comparison functions***\n";
6
7$arr1 = array(1);
8$arr2 = array(1,2);
9
10echo "\n-- comparison function with an incorrect return value --\n";
11function incorrect_return_value ($val1, $val2) {
12  return array(1);
13}
14var_dump(array_uintersect_assoc($arr1, $arr2, 'incorrect_return_value'));
15
16echo "\n-- comparison function taking too many parameters --\n";
17function too_many_parameters ($val1, $val2, $val3) {
18  return 1;
19}
20try {
21    var_dump(array_uintersect_assoc($arr1, $arr2, 'too_many_parameters'));
22} catch (Throwable $e) {
23    echo "Exception: " . $e->getMessage() . "\n";
24}
25
26echo "\n-- comparison function taking too few parameters --\n";
27function too_few_parameters ($val1) {
28  return 1;
29}
30var_dump(array_uintersect_assoc($arr1, $arr2, 'too_few_parameters'));
31
32?>
33--EXPECT--
34*** Testing array_uintersect_assoc() : usage variation - differing comparison functions***
35
36-- comparison function with an incorrect return value --
37array(0) {
38}
39
40-- comparison function taking too many parameters --
41Exception: Too few arguments to function too_many_parameters(), 2 passed and exactly 3 expected
42
43-- comparison function taking too few parameters --
44array(0) {
45}
46
47