Junior
Wat is het doel van het sleutelwoord final in PHP?
sobes.tech AI
Antwoord van AI
Het sleutelwoord final wordt gebruikt om het overschrijven van klassen, methoden en constanten te voorkomen.
Toepassingen:
-
Klassen: Als een klasse als
finalis gedeclareerd, kan deze niet worden uitgebreid.<?php final class Base { // ... } // Fatale fout: De klasse Derived kan niet erven van de finale klasse Base // class Derived extends Base { // // ... // } -
Methoden: Als een klasse-methode als
finalis gedeclareerd, kan deze niet worden overschreven in een afgeleide klasse.<?php class Base { final public function process() { // ... } } class Derived extends Base { // Fatale fout: Kan de finale methode Base::process() niet overschrijven // public function process() { // // ... // } } -
Constanten: Vanaf PHP 8.1 kunnen klasseconstanten ook als
finalworden gedeclareerd. Dit voorkomt dat ze worden overschreven in afgeleide klassen.<?php class Base { final public const VERSION = '1.0'; } class Derived extends Base { // Fatale fout: Kan de finale constante Base::VERSION niet overschrijven // public const VERSION = '1.1'; }
Doel van final:
- Veiligheid: Zorgt ervoor dat de kernlogica of het beoogde gedrag van de klasse/methode niet wordt gewijzigd in subklassen.
- API-stabiliteit: Garandeert dat de specifieke implementatie van een methode of klasse niet wordt gewijzigd, wat vooral belangrijk is bij het ontwikkelen van bibliotheken.
- Prestaties (licht): In sommige gevallen kan het de compiler-optimizer toestaan om agressievere inline-optimisaties uit te voeren, omdat bekend is dat de methode niet wordt overschreven.