PHP 8.3.7 Released!

ReflectionParameter::isCallable

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

ReflectionParameter::isCallableRetorna se o parâmetro DEVE ser um callable

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Veja o exemplo abaixo para uma forma alternativa de derivar esta informação.

Descrição

public ReflectionParameter::isCallable(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o parâmetro for callable, false se não for ou null em caso de falha.

Exemplos

Exemplo #1 Equivalente a PHP 8.0.0

A partir do PHP 8.0.0, o código a seguir reportará se um tipo suporta callables, inclusive como parte de uma união.

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