显然,对于许多内部函数(例如 array_map 和 array_walk)的回调参数,此函数不会返回 true。
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionParameter::isCallable — 返回参数是否必须是可调用的
此函数自PHP 8.0.0起已弃用。强烈建议不要依赖此函数。
请参见下面的示例,了解获取此信息的替代方法。
此函数没有参数。
版本 | 描述 |
---|---|
8.0.0 | 此函数已被弃用,建议使用ReflectionParameter::getType()代替。 |
示例 #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));
}
?>