1--TEST--
2ReflectionParameter class - canBePassedByValue() method.
3--FILE--
4<?php
5
6function aux($fun) {
7
8    $func = new ReflectionFunction($fun);
9    $parameters = $func->getParameters();
10    foreach($parameters as $parameter) {
11        echo "Name: ", $parameter->getName(), "\n";
12        echo "Is passed by reference: ", $parameter->isPassedByReference()?"yes":"no", "\n";
13        echo "Can be passed by value: ", $parameter->canBePassedByValue()?"yes":"no", "\n";
14        echo "\n";
15    }
16
17}
18
19echo "=> array_multisort:\n\n";
20
21aux('array_multisort');
22
23
24echo "=> sort:\n\n";
25
26aux('sort');
27
28echo "=> user function:\n\n";
29
30function ufunc(&$arg1, $arg2) {}
31
32aux('ufunc');
33
34echo "Done.\n";
35
36?>
37--EXPECT--
38=> array_multisort:
39
40Name: arr1
41Is passed by reference: yes
42Can be passed by value: yes
43
44Name: sort_order
45Is passed by reference: yes
46Can be passed by value: yes
47
48Name: sort_flags
49Is passed by reference: yes
50Can be passed by value: yes
51
52Name: arr2
53Is passed by reference: yes
54Can be passed by value: yes
55
56=> sort:
57
58Name: arg
59Is passed by reference: yes
60Can be passed by value: no
61
62Name: sort_flags
63Is passed by reference: no
64Can be passed by value: yes
65
66=> user function:
67
68Name: arg1
69Is passed by reference: yes
70Can be passed by value: no
71
72Name: arg2
73Is passed by reference: no
74Can be passed by value: yes
75
76Done.
77