Sobes.tech
Junior

PHP-də final açar sözünün məqsədi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

final açar sözü, siniflərin, metodların və sabitlərin yenidən yazılmasını qarşısını almaq üçün istifadə olunur.

Tətbiqlər:

  • Siniflər: Əgər sinif final kimi elan olunubsa, onu miras almaq mümkün deyil.

    <?php
    final class Base {
        // ...
    }
    
    // Ölümcül xəta: Derived sinfi `final` sinfi olan Base-dən miras ala bilməz
    // class Derived extends Base {
    //     // ...
    // }
    
  • Metodlar: Əgər sinif metod final kimi elan olunubsa, onu törəmə sinifdə yenidən yaza bilməzsiniz.

    <?php
    class Base {
        final public function process() {
            // ...
        }
    }
    
    class Derived extends Base {
        // Ölümcül xəta: `final` metod Base::process() yenidən yaza bilməzsiniz
        // public function process() {
        //     // ...
        // }
    }
    
  • Sabitlər: PHP 8.1-dən etibarən, sinif sabitləri də final kimi elan oluna bilər. Bu, onların törəmə siniflərdə yenidən yazılmasını qarşısını alır.

    <?php
    class Base {
        final public const VERSION = '1.0';
    }
    
    class Derived extends Base {
        // Ölümcül xəta: `final` sabit Base::VERSION yenidən yaza bilməzsiniz
        // public const VERSION = '1.1';
    }
    

final-ın məqsədi:

  • Təhlükəsizlik: Sinif/metodun əsas məntiqi və ya gözlənilən davranışının alt siniflərdə dəyişdirilməsini təmin edir.
  • API sabitliyi: Xüsusi metod və ya sinifin tətbiqinin dəyişdirilməsini qarşısını alır, bu, kitabxana inkişafında xüsusilə vacibdir.
  • Performans (bir az): Bəzi hallarda, tərtibçi optimizatorunun daha aqressiv inline optimizasiyalar etməsinə imkan verə bilər, çünki metodun yenidən yazılmayacağı məlumdur.