PHP Conference Japan 2024

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionParameter::isCallable返回参数是否必须是可调用的

警告

此函数自PHP 8.0.0起已弃用。强烈建议不要依赖此函数。

请参见下面的示例,了解获取此信息的替代方法。

描述

#[\Deprecated]
public ReflectionParameter::isCallable(): bool

警告

此函数目前没有文档;只有其参数列表可用。

参数

此函数没有参数。

返回值

如果参数是callable,则返回true;如果不是,则返回false;失败则返回null

变更日志

版本 描述
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));
}
?>

添加注释

用户贡献的注释 1 条注释

0
me at abiusx dot com
8 年前
显然,对于许多内部函数(例如 array_map 和 array_walk)的回调参数,此函数不会返回 true。
To Top