3 function test_cufa($args) {
4 echo "\n", '********* ', __FUNCTION__
, ' **********', "\n";
7 echo "\n", '========= functions ==========', "\n";
8 call_user_func_array('variadic_only_no_vv', $args);
9 call_user_func_array('variadic_only', $args);
10 try { call_user_func_array('variadic_some', $args); } catch (Exception
$e) { var_dump($e->getMessage()); }
11 call_user_func_array('variadic_hack_only', $args);
12 try { call_user_func_array('variadic_hack_some', $args); } catch (Exception
$e) { var_dump($e->getMessage()); }
13 echo "\n", '========= static methods ==========', "\n";
14 call_user_func_array(['C', 'st_variadic_only'], $args);
15 try { call_user_func_array(['C', 'st_variadic_some'], $args); } catch (Exception
$e) { var_dump($e->getMessage()); }
16 call_user_func_array(['C', 'st_variadic_hack_only'], $args);
17 try { call_user_func_array(['C', 'st_variadic_hack_some'], $args); } catch (Exception
$e) { var_dump($e->getMessage()); }
18 echo "\n", '========= instance methods ==========', "\n";
20 call_user_func_array([$inst, 'variadic_only'], $args);
21 try { call_user_func_array([$inst, 'variadic_some'], $args); } catch (Exception
$e) { var_dump($e->getMessage()); }
22 call_user_func_array([$inst, 'variadic_hack_only'], $args);
23 try { call_user_func_array([$inst, 'variadic_hack_some'], $args); } catch (Exception
$e) { var_dump($e->getMessage()); }
27 echo "\n", '********* ', __FUNCTION__
, ' **********', "\n";
28 call_user_func('variadic_only_no_vv', 'a', 'b', 'c');
29 call_user_func('variadic_only', 'a', 'b', 'c');
30 call_user_func('variadic_some', 'a', 'b', 'c');
31 call_user_func('variadic_hack_only', 'a', 'b', 'c');
32 call_user_func('variadic_hack_some', 'a', 'b', 'c');
33 echo "\n", '========= static methods ==========', "\n";
34 call_user_func(['C', 'st_variadic_only'], 'a', 'b', 'c');
35 call_user_func(['C', 'st_variadic_some'], 'a', 'b', 'c');
36 call_user_func(['C', 'st_variadic_hack_only'], 'a', 'b', 'c');
37 call_user_func(['C', 'st_variadic_hack_some'], 'a', 'b', 'c');
38 echo "\n", '========= instance methods ==========', "\n";
40 call_user_func([$inst, 'variadic_only'], 'a', 'b', 'c');
41 call_user_func([$inst, 'variadic_some'], 'a', 'b', 'c');
42 call_user_func([$inst, 'variadic_hack_only'], 'a', 'b', 'c');
43 call_user_func([$inst, 'variadic_hack_some'], 'a', 'b', 'c');
46 function test_cuf_insuffient_calls() {
47 echo "\n", '********* ', __FUNCTION__
, ' **********', "\n";
48 call_user_func('variadic_only_no_vv');
49 call_user_func('variadic_only');
50 try { call_user_func('variadic_some'); } catch (Exception
$e) { var_dump($e->getMessage()); }
51 call_user_func('variadic_hack_only');
52 try { call_user_func('variadic_hack_some'); } catch (Exception
$e) { var_dump($e->getMessage()); }
53 echo "\n", '========= static methods ==========', "\n";
54 call_user_func(['C', 'st_variadic_only']);
55 try { call_user_func(['C', 'st_variadic_some']); } catch (Exception
$e) { var_dump($e->getMessage()); }
56 call_user_func(['C', 'st_variadic_hack_only']);
57 try { call_user_func(['C', 'st_variadic_hack_some']); } catch (Exception
$e) { var_dump($e->getMessage()); }
58 echo "\n", '========= instance methods ==========', "\n";
60 call_user_func([$inst, 'variadic_only']);
61 try { call_user_func([$inst, 'variadic_some']); } catch (Exception
$e) { var_dump($e->getMessage()); }
62 call_user_func([$inst, 'variadic_hack_only']);
63 try { call_user_func([$inst, 'variadic_hack_some']); } catch (Exception
$e) { var_dump($e->getMessage()); }
66 function test_stack_should_not_overflow(...$args) {
67 echo "\n", '********* ', __FUNCTION__
, ' **********', "\n";
68 var_dump(is_array($args));
69 var_dump(count($args));
74 test_cuf_insuffient_calls();
76 test_cufa(array('a', 'b', 'c'));
77 test_cufa(array('a'));
80 call_user_func_array('test_stack_should_not_overflow', range(0, 10000));
81 call_user_func_array('test_stack_should_not_overflow', range(0, 30000));
86 function main_cufa() {
88 require_once __DIR__
.'/variadic_funcs.inc';