Junior
Mis on võtmesõna final eesmärk PHP-s?
sobes.tech AI
Vastus AI-lt
Võtmesõna final kasutatakse klasside, meetodite ja konstantide ülekirjutamise vältimiseks.
Rakendus:
-
Klassid: Kui klass on märgitud
final, seda pärida ei saa.<?php final class Base { // ... } // Fataalne viga: Class Derived ei saa pärida final klassilt Base // class Derived extends Base { // // ... // } -
Meetodid: Kui klassi meetod on märgitud
final, seda ei saa alampõhjaklassis üle kirjutada.<?php class Base { final public function process() { // ... } } class Derived extends Base { // Fataalne viga: Ei saa üle kirjutada final meetodit Base::process() // public function process() { // // ... // } } -
Konstantid: Alates PHP 8.1-st võivad klassikonstantid olla samuti märgitud
final-ina. See takistab nende ülekirjutamist alampõhjaklassides.<?php class Base { final public const VERSION = '1.0'; } class Derived extends Base { // Fataalne viga: Ei saa üle kirjutada final konstantat Base::VERSION // public const VERSION = '1.1'; }
final eesmärk:
- Turvalisus: Tagab, et põhiloogika või eeldatav käitumine klassi/metood ei muutu alamklassides.
- API stabiilsus: Tagab, et konkreetne meetodi või klassi rakendus ei muutu, mis on eriti oluline raamatukogude arendamisel.
- Jõudlus (vähemalt): Mõnel juhul võib see võimaldada kompilaatoril teha agressiivsemaid inline-optimatsioone, kuna on teada, et meetod ei muutu üle kirjutatuks.