如何获取参数类型提示的字符串名称?

时间:2018-08-17 06:40:21

标签: php function types

让我们说我们有这个功能:

function greetMe (string $name) {                                                                                                                                        
    echo '<br/>'.$name;                                                                                                                                                  
    echo '<br/>'.gettype($name);                                                                                                                                         
}                                                                                                                                                                        

如您所见,我们可以获取参数$name的类型。
现在,我想知道此函数的内部是否有可能知道我声明了类型string而不是其他类型。有提示吗?

1 个答案:

答案 0 :(得分:2)

在PHP 7和更高版本中,您可以使用ReflectionParameter.getType

  

示例1的ReflectionParameter :: getType()示例

<?php
function someFunction(int $param, $param2) {}

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

echo $reflectionType1;
var_dump($reflectionType2);
     

上面的示例将输出类似于:

int
null