xref: /PHP-5.4/ext/reflection/tests/025.phpt (revision 03837324)
1--TEST--
2ReflectionFunction basic tests
3--SKIPIF--
4<?php extension_loaded('reflection') or die('skip'); ?>
5--FILE--
6<?php
7
8/**
9hoho
10*/
11function test ($a, $b = 1, $c = "") {
12	static $var = 1;
13}
14
15$func = new ReflectionFunction("test");
16
17var_dump($func->export("test"));
18echo "--getName--\n";
19var_dump($func->getName());
20echo "--isInternal--\n";
21var_dump($func->isInternal());
22echo "--isUserDefined--\n";
23var_dump($func->isUserDefined());
24echo "--getFilename--\n";
25var_dump($func->getFilename());
26echo "--getStartline--\n";
27var_dump($func->getStartline());
28echo "--getEndline--\n";
29var_dump($func->getEndline());
30echo "--getDocComment--\n";
31var_dump($func->getDocComment());
32echo "--getStaticVariables--\n";
33var_dump($func->getStaticVariables());
34echo "--invoke--\n";
35var_dump($func->invoke(array(1,2,3)));
36echo "--invokeArgs--\n";
37var_dump($func->invokeArgs(array(1,2,3)));
38echo "--returnsReference--\n";
39var_dump($func->returnsReference());
40echo "--getParameters--\n";
41var_dump($func->getParameters());
42echo "--getNumberOfParameters--\n";
43var_dump($func->getNumberOfParameters());
44echo "--getNumberOfRequiredParameters--\n";
45var_dump($func->getNumberOfRequiredParameters());
46
47echo "Done\n";
48
49?>
50--EXPECTF--
51/**
52hoho
53*/
54Function [ <user> function test ] {
55  @@ %s 6 - 8
56
57  - Parameters [3] {
58    Parameter #0 [ <required> $a ]
59    Parameter #1 [ <optional> $b = 1 ]
60    Parameter #2 [ <optional> $c = '' ]
61  }
62}
63
64NULL
65--getName--
66string(4) "test"
67--isInternal--
68bool(false)
69--isUserDefined--
70bool(true)
71--getFilename--
72string(%d) "%s025.php"
73--getStartline--
74int(6)
75--getEndline--
76int(8)
77--getDocComment--
78string(11) "/**
79hoho
80*/"
81--getStaticVariables--
82array(1) {
83  ["var"]=>
84  int(1)
85}
86--invoke--
87NULL
88--invokeArgs--
89NULL
90--returnsReference--
91bool(false)
92--getParameters--
93array(3) {
94  [0]=>
95  &object(ReflectionParameter)#2 (1) {
96    ["name"]=>
97    string(1) "a"
98  }
99  [1]=>
100  &object(ReflectionParameter)#3 (1) {
101    ["name"]=>
102    string(1) "b"
103  }
104  [2]=>
105  &object(ReflectionParameter)#4 (1) {
106    ["name"]=>
107    string(1) "c"
108  }
109}
110--getNumberOfParameters--
111int(3)
112--getNumberOfRequiredParameters--
113int(1)
114Done
115