Sobes.tech
Junior

Jaký je účel klíčového slova final v PHP?

sobes.tech AI

Odpověď od AI

Klíčové slovo final se používá k zabránění přepsání tříd, metod a konstant.

Použití:

  • Třídy: Pokud je třída deklarována jako final, nelze ji dědit.

    <?php
    final class Base {
        // ...
    }
    
    // Fatální chyba: Třída Derived nemůže dědit z finální třídy Base
    // class Derived extends Base {
    //     // ...
    // }
    
  • Metody: Pokud je metoda třídy deklarována jako final, nelze ji přepsat v odvozené třídě.

    <?php
    class Base {
        final public function process() {
            // ...
        }
    }
    
    class Derived extends Base {
        // Fatální chyba: Nelze přepsat finální metodu Base::process()
        // public function process() {
        //     // ...
        // }
    }
    
  • Konstanty: Od PHP 8.1 mohou být třídy konstanty také deklarovány jako final. To zabrání jejich přepsání v odvozených třídách.

    <?php
    class Base {
        final public const VERSION = '1.0';
    }
    
    class Derived extends Base {
        // Fatální chyba: Nelze přepsat finální konstantu Base::VERSION
        // public const VERSION = '1.1';
    }
    

Účel final:

  • Bezpečnost: Zajišťuje, že klíčová logika nebo očekávané chování třídy/metody nebude změněno v podtřídách.
  • Stabilita API: Zaručuje, že konkrétní implementace metody nebo třídy nebude modifikována, což je zvláště důležité při vývoji knihoven.
  • Výkon (nepatrně): V některých případech může umožnit optimalizátoru kompilátoru dělat agresivnější inline optimalizace, protože je známo, že metoda nebude přepsána.