Récupère le type du paramètre

# ReflectionParameter::getType

(PHP 7, PHP 8)

ReflectionParameter::getType — Récupère le type du paramètre

### Description

public function ReflectionParameter::getType(): ?ReflectionType

Récupère le type associé d'un paramètre.

### Liste de paramètres

Cette fonction ne contient aucun paramètre.

### Valeurs de retour

Retourne un objet ReflectionType si un type de paramètre est spécifié, `null` sinon.

### Exemples

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 suivante 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];
    }
    ?>

### Voir aussi

- ReflectionParameter::hasType() - Vérifie si un paramètre a un type
- ReflectionType::__toString() - Conversion en chaîne de caractères

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open