PHP 8.3.4 Released!

ReflectionParameter::isCallable

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

ReflectionParameter::isCallableОпределяет, должен ли параметр принадлежать типу callable

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

В приведённом примере показан альтернативный способ, которым получают эту информацию.

Описание

public ReflectionParameter::isCallable(): bool

Внимание

Функция пока не документирована; для знакомства доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает true, если тип параметра callable, иначе false. В случае ошибки метод вернёт null.

Примеры

Пример #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));
}

?>

add a note

User Contributed Notes 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