Junior
Kokia yra raktinio žodžio final paskirtis PHP?
sobes.tech AI
Atsakymas iš AI
Raktinis žodis final naudojamas siekiant užkirsti kelią klasių, metodų ir konstantų perrašymui.
Naudojimas:
-
Klasės: Jei klasė yra pažymėta kaip
final, jos paveldėti negalima.<?php final class Base { // ... } // Mirtinas klaidos pranešimas: Class Derived gali būti paveldėta iš final klasės Base // class Derived extends Base { // // ... // } -
Metodai: Jei klasės metodas pažymėtas kaip
final, jį negalima perrašyti vaikų klasėje.<?php class Base { final public function process() { // ... } } class Derived extends Base { // Mirtinas klaidos pranešimas: Negalima perrašyti final metodo Base::process() // public function process() { // // ... // } } -
Konstantos: Nuo PHP 8.1, klasių konstantos taip pat gali būti pažymėtos kaip
final. Tai neleidžia jų perrašyti vaikų klasėse.<?php class Base { final public const VERSION = '1.0'; } class Derived extends Base { // Mirtinas klaidos pranešimas: Negalima perrašyti final konstantos Base::VERSION // public const VERSION = '1.1'; }
final paskirtis:
- Sauga: Užtikrina, kad pagrindinė logika ar numatomas elgesys klasės/metodo nebus pakeistas pogrupiuose.
- API stabilumas: Garantuoja, kad konkreti metodo ar klasės realizacija nebus modifikuota, kas ypač svarbu kuriant bibliotekas.
- Našumas (nežymus): Kai kuriais atvejais gali leisti optimizatoriui atlikti agresyvesnes inline optimizacijas, nes žinoma, kad metodas nebus perrašytas.