final Anahtar Sözcüğü

PHP 5 ile birlikte gelen diğer bir yenilik final anahtar sözcüğüdür. Bu anahtar sözcükle tanımlanmış bir yöntemi çocuk sınıflar geçersiz kılamazlar. Eğer bir sınıf kendini final sözcüğüyle tanımlamışsa o sınıf genişletilemez.

Örnek 1 - final yöntem örneği

<?php
class AnaSınıf {
   public function 
deneme() {
       echo 
"AnaSınıf::deneme() çağrıldı\n";
   }

   final public function 
başkaDeneme() {
       echo 
"AnaSınıf::başkaDeneme() çağrıldı\n";
   }
}

class 
ÇocukSınıf extends AnaSınıf {
   public function 
başkaDeneme() {
       echo 
"ÇocukSınıf::başkaDeneme() çağrıldı\n";
   }
}
// Ölümcül hata ile sonuçlanır: AnaSınıf:başkaDeneme() final yöntemi
// ÇocukSınıf::başkaDeneme() yöntemiyle geçersiz kılınamaz
?>

Örnek 2 - final sınıf örneği

<?php
final class AnaSınıf {
   public function 
deneme() {
       echo 
"AnaSınıf::deneme() çağrıldı\n";
   }

   
// Burada işlevi final olarak belirtmenin bir önemi yoktur
   
final public function başkaDeneme() {
       echo 
"AnaSınıf::başkaDeneme() çağrıldı\n";
   }
}

class 
ÇocukSınıf extends AnaSınıf {
}
// Ölümcül hata ile sonuçlanır: ÇocukSınıf final bir sınıf
// olan AnaSınıf'ın çocuğu olarak oluşturulamaz
?>

Bilginize: Özellikler final olarak bildirilemez, sadece sınıflar ve yöntemler final olarak bildirilebilir.