Friday, October 17, 2025
HomeLanguagesFinal keyword in PHP

Final keyword in PHP

Final keyword in PHP is used in different context. The final keyword is used only for methods and classes.
final keyword
Final methods: When a method is declared as final then overriding on that method can not be performed. Methods are declared as final due to some design reasons. Method should not be overridden due to security or any other reasons.

Example:




<?php
  
// Program to understand use of 
// final keyword for methods
class Base {
      
    // Final method
    final function printdata() {
        echo " Base class final printdata function";
    }
      
    // Non final method
    function nonfinal() {
        echo "\n This is nonfinal function of base class";
    }
}
  
// Class that extend base class
class Derived extends Base {
      
    // Inheriting method nonfinal 
    function nonfinal() {
        echo "\n Derived class non final function";
    }
      
    // Here printdata function can
    // not be overridden
}
  
$obj = new Derived;
$obj->printdata();
$obj->nonfinal();
?>


Output:

Base class final printdata function
 Derived class non final function

Final Classes: A class declared as final can not be extended in future. Classes are declared as final due to some design level issue. Creator of class declare that class as final if he want that class should not be inherited due to some security or other reasons. A final class can contain final as well as non final methods. But there is no use of final methods in class when class is itself declared as final because inheritance is not possible.

Example:




<?php
  
// Program to understand final classes
// in php
final class Base {
      
    // Final method
    final function printdata() {
        echo "final base class final method";
    }
          
    // Non final method
    function nonfinal() {
        echo "\nnon final method of final base class";
    }
}
  
$obj = new Base;
$obj->printdata();
$obj->nonfinal();
  
/* If we uncomment these lines then it will
show Class Derived may not inherit from final
class (Base)
class Derived extends Base {
      
} */
?>


Output:

final base class final method
non final method of final base class

Note: Unlike Java final keyword in PHP can only be used for methods and classes not for variables.

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS