Sobes.tech
Junior

PHP'de final anahtar kelimesinin amacı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

final anahtar kelimesi, sınıfların, metodların ve sabitlerin yeniden tanımlanmasını engellemek için kullanılır.

Uygulamalar:

  • Sınıflar: Bir sınıf final olarak ilan edilirse, miras alınamaz.

    <?php
    final class Base {
        // ...
    }
    
    // Ölümcül hata: Derived sınıfı, final sınıf olan Base'ten kalıtılamaz
    // class Derived extends Base {
    //     // ...
    // }
    
  • Metodlar: Bir sınıf metodunun final olarak ilan edilmesi, alt sınıfta üzerine yazılamayacağı anlamına gelir.

    <?php
    class Base {
        final public function process() {
            // ...
        }
    }
    
    class Derived extends Base {
        // Ölümcül hata: Base::process() final metodunu geçersiz kılamazsınız
        // public function process() {
        //     // ...
        // }
    }
    
  • Sabitler: PHP 8.1'den itibaren, sınıf sabitleri de final olarak ilan edilebilir. Bu, alt sınıflarda yeniden tanımlanmasını engeller.

    <?php
    class Base {
        final public const VERSION = '1.0';
    }
    
    class Derived extends Base {
        // Ölümcül hata: Base::VERSION final sabitini geçersiz kılamazsınız
        // public const VERSION = '1.1';
    }
    

final'ın amacı:

  • Güvenlik: Anahtar mantığın veya sınıf/metodun öngörülen davranışının alt sınıflarda değiştirilmesini engeller.
  • API kararlılığı: Belirli bir metodun veya sınıfın uygulamasının değiştirilmemesini sağlar, bu özellikle kütüphane geliştirmede önemlidir.
  • Performans (biraz): Bazı durumlarda, derleyici optimize edicisinin daha agresif inline optimizasyonları yapmasına izin verebilir, çünkü metodun yeniden tanımlanmayacağı bilinir.