Annotation of embedaddon/php/ext/reflection/tests/closures_001.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Reflection on closures
3: --FILE--
4: <?php
5:
6: $closure = function($a, $b = 0) { };
7:
8: $ro = new ReflectionObject($closure);
9: $rm = $ro->getMethod('__invoke');
10: var_dump($rm->getNumberOfParameters());
11: var_dump($rm->getNumberOfRequiredParameters());
12: $rms = $ro->getMethods();
13: foreach($rms as $rm) {
14: if ($rm->getName() == '__invoke') {
15: var_dump($rm->getNumberOfParameters());
16: var_dump($rm->getNumberOfRequiredParameters());
17: }
18: }
19:
20: echo "---\n";
21:
22: $rm = new ReflectionMethod($closure, '__invoke');
23: var_dump($rm->getName());
24: var_dump($rm->getNumberOfParameters());
25: var_dump($rm->getNumberOfRequiredParameters());
26:
27: echo "---\n";
28:
29: $rp = new ReflectionParameter(array($closure, '__invoke'), 0);
30: var_dump($rp->isOptional());
31: $rp = new ReflectionParameter(array($closure, '__invoke'), 1);
32: var_dump($rp->isOptional());
33: $rp = new ReflectionParameter(array($closure, '__invoke'), 'a');
34: var_dump($rp->isOptional());
35: $rp = new ReflectionParameter(array($closure, '__invoke'), 'b');
36: var_dump($rp->isOptional());
37:
38: echo "---\n";
39:
40: $rp = new ReflectionParameter($closure, 0);
41: var_dump($rp->isOptional());
42: $rp = new ReflectionParameter($closure, 1);
43: var_dump($rp->isOptional());
44: $rp = new ReflectionParameter($closure, 'a');
45: var_dump($rp->isOptional());
46: $rp = new ReflectionParameter($closure, 'b');
47: var_dump($rp->isOptional());
48:
49: ?>
50: ===DONE===
51: --EXPECTF--
52: int(2)
53: int(1)
54: int(2)
55: int(1)
56: ---
57: string(8) "__invoke"
58: int(2)
59: int(1)
60: ---
61: bool(false)
62: bool(true)
63: bool(false)
64: bool(true)
65: ---
66: bool(false)
67: bool(true)
68: bool(false)
69: bool(true)
70: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>