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 — Vérifie si le paramètre est de type callable
Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.
Voir l'exemple ci-dessous pour une manière alternative pour dériver cette information.
Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.
Cette fonction ne contient aucun paramètre.
Retourne true
si le paramètre est de type callable, false
s'il ne l'est pas, ou null
si une erreur survient.
Exemple #1 Équivalent PHP 8.0.0
À partir de PHP 8.0.0, le code suivant signalera si un type supporte les callables, incluant ceux faisant partie d'une 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));
}
?>
Apparently this does not return true for callback arguments to many of the internal functions, such as array_map and array_walk.