(PHP 8 >= 8.3.0)
Атрибут указывает, что метод переопределяет метод родительского класса или реализует метод, который определили в интерфейсе.
PHP выдаст ошибку времени компиляции, если в родительском классе или интерфейсе, который реализовали, не содержится метода с таким же названием.
<?php
class Base
{
protected function foo(): void {}
}
final class Extended extends Base
{
#[\Override]
protected function boo(): void {}
}
?>
Результат выполнения приведённого примера в PHP 8.3 аналогичен:
Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists