(PHP 8 >= 8.3.0)
Este atributo é usado para indicar que um método se destina a substituir um método de uma classe superior ou que ele implementa um método definido em uma interface.
Se nenhum método com o mesmo nome existir em uma classe superior ou em uma interface implementada, um erro será emitido no momento da compilação.
<?php
class Base {
protected function foo(): void {}
}
final class Extended extends Base {
#[\Override]
protected function boo(): void {}
}
?>
A saída do exemplo acima no PHP 8.3 é semelhante a:
Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists