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