显然,对于许多内部函数(如 array_map 和 array_walk)的回调参数,此函数不会返回 true。
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionParameter::isCallable — 返回参数是否必须是可调用的
此函数从 PHP 8.0.0 开始已弃用。强烈建议不要依赖此函数。
请参阅下面的示例,了解另一种获取此信息的方法。
此函数没有参数。
示例 #1 PHP 8.0.0 等效代码
从 PHP 8.0.0 开始,以下代码将报告类型是否支持可调用,包括作为联合类型的一部分。
<?php
function declaresCallable(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();
if (!$reflectionType) return false;
$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];
return in_array('callable', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>