Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Attribut sans classe

<?php

#[Attribute]
class y {
    function foo() { return __METHOD__; }
}

#[X, Y]
function f() { }

$ref = new \ReflectionFunction('\f');

try {
    if ($ref->getAttributes()[0]->getName() === 'X') {
        print 'Look mom! No hands' . PHP_EOL;
    }

    if ($ref->getAttributes()[1]->getName() === 'Y') {
        print $ref->getAttributes()[1]->newInstance()->foo();
    }
} catch (\Error $e) {
    # other errors
    var_dump($e->getMessage());
}

?>

PHP 8.0 dispose d’une fonctionnalité d’attributs, où des options supplémentaires peuvent être attachées à diverses structures. L’option est définie sous forme de classe, et est accessible via l’API Reflection et la méthode getAttribute().

La classe d’attribut n’est pas strictement nécessaire. Tant que l’attribut n’est pas instancié, il est possible de se reposer uniquement sur le nom de l’attribut pour gérer des comportements spécifiques.

See Also

PHP Features

Last updated: 11 October 2026