คีย์เวิร์ด final ใน PHP 5 ใช้กับ OOP ป้องกันการ override method หรือการ extend class
ตัวอย่าง: Final Method
<?php
class BaseClass{
final function calculate($val1,$val2){
$sum = $val1+$val2;
echo "Sum of given no=".$sum;
}
}
class ChildClass extends BaseClass{
function calculate($x,$y){ // Error: Cannot override final method
$mult=$x*$y;
echo "Multiplication of given no=".$mult;
}
}
$obj = new ChildClass();
$obj->calculate(10,10);
?>
ผลลัพธ์
PHP Fatal error: Cannot override final method BaseClass::calculate()
คำอธิบาย
calculate() ใน BaseClass เป็น final ChildClass ไม่สามารถ override ได้
ตัวอย่าง: Final Class
<?php
final class BaseClass{
function printData($val1,$val2){
$add=$val1+$val2;
echo "Sum of given no=".$add;
}
}
class Child extends BaseClass{ // Error: Cannot inherit from final class
function printData($val1,$val2){
$m=$val1*$val2;
echo "Multiplication of given no=".$m;
}
}
$obj = new Child();
$obj->printData(20,20);
?>
ผลลัพธ์
PHP Fatal error: Class Child may not inherit from final class (BaseClass)
คำอธิบาย
BaseClass เป็น final class ไม่สามารถ extend ได้