As of 7.1, if a parameter type is found then this method returns an instance of ReflectionNamedType (https://www.php.net/manual/en/class.reflectionnamedtype.php), a subclass of ReflectionType.
(PHP 7, PHP 8)
ReflectionParameter::getType — Récupère le type du paramètre
Récupère le type associé d'un paramètre.
Cette fonction ne contient aucun paramètre.
Retourne un objet ReflectionType si un type de
paramètre est spécifié, null
sinon.
Exemple #1 Utilisation de ReflectionParameter::getType() à partir de PHP 7.1.0
À partir de PHP 7.1.0, ReflectionType::__toString() est obsolète, et ReflectionParameter::getType() peut retourner une instance de ReflectionNamedType. Pour récupérer le nom du type de paramètre, ReflectionNamedType() est disponible dans ce cas.
<?php
function someFunction(int $param, $param2) {}
$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();
assert($reflectionType1 instanceof ReflectionNamedType);
echo $reflectionType1->getName(), PHP_EOL;
var_dump($reflectionType2);
?>
L'exemple ci-dessus va afficher :
int NULL
Exemple #2 Utilisation de ReflectionParameter::getType() antérieur à PHP 7.1.0
<?php
function someFunction(int $param, $param2) {}
$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();
echo $reflectionType1, PHP_EOL;
var_dump($reflectionType2);
?>
Résultat de l'exemple ci-dessus en PHP 7.0 :
int NULL
Exemple #3 Utilisation de ReflectionParameter::getType() en PHP 8.0.0 et ultérieur
À partir de PHP 8.0.0, cette méthode peut retourner une instance soit de
ReflectionNamedType soit de ReflectionUnionType.
Le suivant est une collection du premier. Pour analyser un type,
il est souvent pratique de le normaliser en un tableau d'objets
ReflectionNamedType. La fonction suivant retournera
un tableau de 0
ou plus d'instances de
ReflectionNamedType
<?php
function getAllTypes(ReflectionParameter $reflectionParameter): array
{
$reflectionType = $reflectionParameter->getType();
if (!$reflectionType) return [];
return $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];
}
?>
As of 7.1, if a parameter type is found then this method returns an instance of ReflectionNamedType (https://www.php.net/manual/en/class.reflectionnamedtype.php), a subclass of ReflectionType.