Sobes.tech
Middle

Kas aizliedz izmantot atslēgvārdu final PHP?

sobes.tech AI

Atbilde no AI

Rezerves vārds final PHP kontekstā tiek izmantots, lai novērstu mantošanu un pārrakstīšanu:

  1. Klases galīgums: final piemērošana klasei liedz izveidot tās apakšklases.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Nāvējoša kļūda: DerivedClass klase nevar manto no galīgās BaseClass klases
    
  2. Metodes galīgums: final piemērošana metodei klasē liedz to pārrakstīt apakšklasēs.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Nāvējoša kļūda: Nav atļauts pārrakstīt galīgo ParentClass::cannotBeOverridden() metodi
        public function canBeOverridden() {
            // Pārrakstīšana ir atļauta
        }
    }
    

final nevar piemērot klases īpašībām.