在 PHP 中有获取预期变量类型的选项吗?

There is option to get expected type of variable in PHP?

我有使用

将数组转换为对象的方法
$class = get_class($object);
$methodList = get_class_methods($class);

但现在我还需要有关预期变量类型的信息。例如从这个方法:

public function setFoo(int $foo)
{
}

我也需要int。有什么办法可以得到吗?

您可以使用 Reflection. Specifically ReflectionParameter::getType().

function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

assert($reflectionType1 instanceof ReflectionNamedType);
echo $reflectionType1->getName(), PHP_EOL;
var_dump($reflectionType2);

上面的例子会输出:

int
NULL