Sobes.tech
Junior

Aký je účel kľúčového slova final v PHP?

sobes.tech AI

Odpoveď od AI

Kľúčové slovo final sa používa na zabránenie prepísania tried, metód a konštánt.

Použitie:

  • Triedy: Ak je trieda deklarovaná ako final, nemôže byť zdedená.

    <?php
    final class Base {
        // ...
    }
    
    // Fatálna chyba: Trieda Derived nemôže dediť od finálnej triedy Base
    // class Derived extends Base {
    //     // ...
    // }
    
  • Metódy: Ak je metóda triedy deklarovaná ako final, nemôže byť prepísaná v odvodenom triede.

    <?php
    class Base {
        final public function process() {
            // ...
        }
    }
    
    class Derived extends Base {
        // Fatálna chyba: Nemôže prepísať finálnu metódu Base::process()
        // public function process() {
        //     // ...
        // }
    }
    
  • Konštanty: Od PHP 8.1 môžu byť triedne konštanty tiež deklarované ako final. To zabraňuje ich prepísaniu v odvodených triedach.

    <?php
    class Base {
        final public const VERSION = '1.0';
    }
    
    class Derived extends Base {
        // Fatálna chyba: Nemôže prepísať finálnu konštantu Base::VERSION
        // public const VERSION = '1.1';
    }
    

Účel final:

  • Bezpečnosť: Zabezpečuje, že kľúčová logika alebo očakávané správanie triedy/metódy nebude zmenené v podtriedach.
  • Stabilita API: Garantuje, že konkrétna implementácia metódy alebo triedy nebude modifikovaná, čo je obzvlášť dôležité pri vývoji knižníc.
  • Výkon (mierne): V niektorých prípadoch môže umožniť optimalizátoru kompilátora robiť agresívnejšie inline optimalizácie, pretože je známe, že metóda nebude prepísaná.