(PHP 8 >= 8.3.0)
Cet attribut est utilisé pour indiquer qu'une méthode est destinée à surcharger une méthode d'une classe parente ou qu'elle implémente une méthode définie dans une interface.
Si aucune méthode portant le même nom n'existe dans une classe parente ou dans une interface implémentée, une erreur de compilation sera émise.
<?php
class Base {
protected function foo(): void {}
}
final class Extended extends Base {
#[\Override]
protected function boo(): void {}
}
?>
Résultat de l'exemple ci-dessus en PHP 8.3 est similaire à :
Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists