1--TEST--
2ReflectionParameter class - isPassedByReferenceMethod()
3--CREDITS--
4Robin Fernandes <robinf@php.net>
5Steve Seear <stevseea@php.net>
6--FILE--
7<?php
8class ReflectTestClass {
9    public static function staticMethod(&$paramOne, $anotherParam) {
10        return ++$theIncrement;
11    }
12
13    public function instanceMethod($firstParam, &$secondParam) {
14      $firstParam = "Hello\n";
15    }
16}
17
18// Create an instance of the Reflection_Method class
19$method = new ReflectionMethod('ReflectTestClass', 'staticMethod');
20// Get the parameters
21$parameters = $method->getParameters();
22echo "Parameters from staticMethod:\n\n";
23foreach($parameters as $parameter) {
24	var_dump($parameter);
25    if($parameter->isPassedByReference()) {
26    	echo "This param is passed by reference\n";
27    } else {
28    	echo "This param is not passed by reference\n";
29    }
30    echo "\n";
31}
32
33// Create an instance of the Reflection_Method class
34$method = new ReflectionMethod('ReflectTestClass', 'instanceMethod');
35// Get the parameters
36$parameters = $method->getParameters();
37echo "Parameters from instanceMethod:\n\n";
38foreach($parameters as $parameter) {
39	var_dump($parameter);
40    if($parameter->isPassedByReference()) {
41    	echo "This param is passed by reference\n";
42    } else {
43    	echo "This param is not passed by reference\n";
44    }
45    echo "\n";
46}
47
48echo "done\n";
49
50?>
51--EXPECTF--
52Parameters from staticMethod:
53
54object(ReflectionParameter)#%i (1) {
55  ["name"]=>
56  string(8) "paramOne"
57}
58This param is passed by reference
59
60object(ReflectionParameter)#%i (1) {
61  ["name"]=>
62  string(12) "anotherParam"
63}
64This param is not passed by reference
65
66Parameters from instanceMethod:
67
68object(ReflectionParameter)#%i (1) {
69  ["name"]=>
70  string(10) "firstParam"
71}
72This param is not passed by reference
73
74object(ReflectionParameter)#%i (1) {
75  ["name"]=>
76  string(11) "secondParam"
77}
78This param is passed by reference
79
80done