phpday 2025 - Call For Papers

ReflectionParameter::isCallable

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

ReflectionParameter::isCallableReturns whether parameter MUST be callable

警告

本函数已自 PHP 8.0.0 起被废弃。强烈建议不要依赖本函数。

See the example below for an alternative way to derive this information.

说明

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

警告

本函数还未编写文档,仅有参数列表。

参数

此函数没有参数。

返回值

Returns true if the parameter is callable, false if it is not or null on failure.

更新日志

版本 说明
8.0.0 This function has been deprecated in favor of ReflectionParameter::getType() instead.

示例

示例 #1 PHP 8.0.0 equivalent

As of PHP 8.0.0, the following code will report if a type supports callables, including as part of a union.

<?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 note

up
0
me at abiusx dot com
8 years ago
Apparently this does not return true for callback arguments to many of the internal functions, such as array_map and array_walk.
To Top