Sobes.tech
Middle

Wat verbiedt het gebruik van het sleutelwoord final in PHP?

sobes.tech AI

Antwoord van AI

Het sleutelwoord final in de context van PHP wordt gebruikt om overerving en overschrijving te voorkomen:

  1. Finaliseren van een klasse: Het toepassen van final op een klasse voorkomt dat er afgeleide klassen van worden gemaakt.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Fatale fout: De klasse DerivedClass kan niet erven van de finale klasse BaseClass
    
  2. Finaliseren van een methode: Het toepassen van final op een methode binnen een klasse voorkomt dat deze wordt overschreven in afgeleide klassen.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Fatale fout: Kan de finale methode ParentClass::cannotBeOverridden() niet overschrijven
        public function canBeOverridden() {
            // Overschrijven is toegestaan
        }
    }
    

final kan niet worden toegepast op klasse-eigenschappen.