(PHP 8 >= 8.3.0)
Dieses Attribut wird verwendet, um anzuzeigen, dass eine Methode oder Eigenschaft eine Methode oder Eigenschaft einer Elternklasse überschreiben soll oder dass sie eine in einer Schnittstelle definierte Methode oder Eigenschaft implementiert.
Wenn es weder in einer Elternklasse noch in einer implementierten Schnittstelle eine Methode oder Eigenschaft mit demselben Namen gibt, wird ein Kompilierungsfehler ausgegeben. emitted.
Das Attribut kann nicht auf die Methode __construct() angewendet werden, da diese von der Signaturprüfung ausgenommen ist.
Version | Beschreibung |
---|---|
8.5.0 | Override kann auf Eigenschaften angewendet werden. |
Beispiel #1 Verwendung mit Methoden
<?php
class Base {
protected function foo(): void {}
}
final class Extended extends Base {
#[\Override]
protected function boo(): void {}
}
?>
Das oben gezeigte Beispiel erzeugt mit PHP 8.3 eine ähnliche Ausgabe wie:
Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists
Beispiel #2 Verwendung mit Eigenschaften
<?php
class Base {
protected string $foo;
}
final class Extended extends Base {
#[\Override]
protected string $boo;
}
?>
Das oben gezeigte Beispiel erzeugt mit PHP 8.5 eine ähnliche Ausgabe wie:
Fatal error: Extended::$boo has #[\Override] attribute, but no matching parent property exists