本文整理汇总了PHP中ReflectionParameter::getTypehintText方法的典型用法代码示例。如果您正苦于以下问题:PHP ReflectionParameter::getTypehintText方法的具体用法?PHP ReflectionParameter::getTypehintText怎么用?PHP ReflectionParameter::getTypehintText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ReflectionParameter
的用法示例。
在下文中一共展示了ReflectionParameter::getTypehintText方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getParamType
/**
* Determine the fully-qualified name of a type-hint for the given param without actually loading typehinted classes.
*
* @param \ReflectionParameter $param
* @return string Hinted typename or NULL when no type-hint is present.
*/
protected function getParamType(\ReflectionParameter $param)
{
if ($param->isArray()) {
return 'array';
}
if ($param->isCallable()) {
return 'callable';
}
$m = NULL;
if (defined('HHVM_VERSION')) {
// @codeCoverageIgnoreStart
$type = $param->getTypehintText();
if ('' === trim($type)) {
$type = NULL;
}
// @codeCoverageIgnoreEnd
} elseif (preg_match("'\\[\\s*<[^>]+>\\s+([a-z_][a-z_0-9]*(?:\\s*\\\\\\s*[a-z_][a-z_0-9]*)*)'i", (string) $param, $m)) {
$type = preg_replace("'\\s+'", '', $m[1]);
} else {
$type = NULL;
}
if ($type !== NULL) {
switch (strtolower($type)) {
case 'self':
$ref = $param->getDeclaringFunction();
if ($ref instanceof \ReflectionMethod) {
return $ref->getDeclaringClass()->name;
}
throw new \RuntimeException(sprintf('Unable to resolve "self" in parameter "%s" of function %s', $param->name, $ref->name));
case 'boolean':
return 'bool';
case 'integer':
return 'int';
}
return $type;
}
return NULL;
}