Annotation of embedaddon/php/ext/standard/tests/general_functions/call_user_func_array_variation_001.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: call_user_func_array() passes by reference if the array element is referenced, regardless of function signature.
3: --FILE--
4: <?php
5:
6: function by_val($arg) {
7: $arg = 'changed';
8: }
9:
10: function by_ref(&$arg) {
11: $arg = 'changed';
12: }
13:
14: echo "------ Calling by_val() with unreferenced argument ------\n";
15: $arg = array('original');
16: call_user_func_array('by_val', $arg);
17: var_dump($arg);
18:
19: echo "------ Calling by_ref() with unreferenced argument ------\n";
20: $arg = array('original');
21: call_user_func_array('by_ref', $arg);
22: var_dump($arg);
23:
24: echo "------ Calling by_val() with referenced argument ------\n";
25: $arg = array('original');
26: $ref = &$arg[0];
27: call_user_func_array('by_val', $arg);
28: var_dump($arg);
29:
30: echo "------ Calling by_ref() with referenced argument ------\n";
31: $arg = array('original');
32: $ref = &$arg[0];
33: call_user_func_array('by_ref', $arg);
34: var_dump($arg);
35:
36: ?>
37: --EXPECTF--
38: ------ Calling by_val() with unreferenced argument ------
39: array(1) {
40: [0]=>
41: string(8) "original"
42: }
43: ------ Calling by_ref() with unreferenced argument ------
44:
45: Warning: Parameter 1 to by_ref() expected to be a reference, value given in %s on line %d
46: array(1) {
47: [0]=>
48: string(8) "original"
49: }
50: ------ Calling by_val() with referenced argument ------
51: array(1) {
52: [0]=>
1.1.1.2 ! misho 53: &string(8) "original"
1.1 misho 54: }
55: ------ Calling by_ref() with referenced argument ------
56: array(1) {
57: [0]=>
58: &string(7) "changed"
59: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>