在 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
我有使用
将数组转换为对象的方法$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