PHP 8.5.0 RC 2 available for testing

Das Attribut Override

(PHP 8 >= 8.3.0)

Einführung

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.

Klassenbeschreibung

final class Override {
/* Methoden */
public __construct()
}

Changelog

Version Beschreibung
8.5.0 Override kann auf Eigenschaften angewendet werden.

Beispiele

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

Inhaltsverzeichnis

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top