Nạp chồng hàm (Function Overloading) trong PHP
Nạp chồng hàm là tính năng cho phép tạo nhiều phương thức với tên tương tự nhưng hoạt động khác nhau về loại tham số đầu vào nó chấp nhận làm đối số.
Ví dụ
Hãy xem ví dụ triển khai nạp chồng hàm:
<?php
class Shape {
const PI = 3.142 ;
function __call($name,$arg){
if($name == 'area')
switch(count($arg)){
case 0 : return 0 ;
case 1 : return self::PI * $arg[0] ;
case 2 : return $arg[0] * $arg[1];
}
}
}
$circle = new Shape();
echo $circle->area(3);
$rect = new Shape();
echo $rect->area(8,6);
?>
Kết quả
Điều này sẽ tạo ra kết quả sau:
9.42648
Ghi đè hàm (Function Overriding) trong PHP
Trong ghi đè hàm, lớp cha và lớp con có cùng tên hàm và số lượng đối số.
Ví dụ
Hãy xem ví dụ triển khai ghi đè hàm:
<?php
class Base {
function display() {
echo "\nBase class function declared final!";
}
function demo() {
echo "\nBase class function!";
}
}
class Derived extends Base {
function demo() {
echo "\nDerived class function!";
}
}
$ob = new Base;
$ob->demo();
$ob->display();
$ob2 = new Derived;
$ob2->demo();
$ob2->display();
?>
Kết quả
Điều này sẽ tạo ra kết quả sau:
Base class function! Base class function declared final! Derived class function! Base class function declared final!