source: src/router/php7/Zend/tests/closures/closure_from_callable_reflection.phpt @ 31874

Last change on this file since 31874 was 31874, checked in by brainslayer, 5 weeks ago

update php

File size: 744 bytes
Line 
1--TEST--
2Testing Closure::fromCallable() functionality: Reflection
3--FILE--
4<?php
5
6class Bar {
7        public static function staticMethod(Bar $bar, int $int, $none) {}
8        public static function instanceMethod(Bar $bar, int $int, $none) {}
9}
10
11function foo(Bar $bar, int $int, $none) {
12
13}
14
15$fn = function (Bar $bar, int $x, $none) {};
16$bar = new Bar();
17
18$callables = [
19        'foo',
20        $fn,
21        'Bar::staticMethod',
22        [$bar, 'instanceMethod']
23];
24
25
26foreach ($callables as $callable) {
27        $closure = Closure::fromCallable($callable);
28        $refl = new ReflectionFunction($closure);
29        foreach ($refl->getParameters() as $param) {
30                if ($param->hasType()) {
31                        $type = $param->getType();
32                        echo $type->getName() . "\n";
33                }
34        }
35}
36
37?>
38--EXPECTF--
39Bar
40int
41Bar
42int
43Bar
44int
45Bar
46int
Note: See TracBrowser for help on using the repository browser.