Final keyword in PHP is used in different context. The final keyword is used only for methods and classes.
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
php
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:
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:
Base class final printdata function Derived class non final function
<?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:
Note: Unlike Java final keyword in PHP can only be used for methods and classes not for variables.final base class final method non final method of final base class