Apparently this does not return true for callback arguments to many of the internal functions, such as array_map and array_walk.
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionParameter::isCallable — Проверяет, объявили ли тип параметра как callable
Функцию УДАЛИЛИ в PHP 8.0.0. Пользоваться функцией настоятельно не рекомендуют.
Пример на этой странице показывает альтернативный способ, которым получают эту информацию.
Функцию пока не задокументировали; для знакомства доступен только список аргументов.
У этой функции нет параметров.
Метод возвращает true
, если тип параметра callable, иначе возвращает false
.
Метод вернёт null
, если возникла ошибка.
Версия | Описание |
---|---|
8.0.0 | Метод устарел в пользу метода ReflectionParameter::getType(). |
Пример #1 Пример альтернативного способа получить информацию о принадлежности параметра типу callable для PHP 8.0.0
Начиная с PHP 8.0.0 следующий код сообщит, поддерживает ли параметр тип callable, в том числе как часть объединения.
<?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
)
);
}
?>
Apparently this does not return true for callback arguments to many of the internal functions, such as array_map and array_walk.