ฟังก์ชั่นโอเวอร์โหลดใน PHP
ฟังก์ชันโอเวอร์โหลดเป็นคุณลักษณะที่อนุญาตให้สร้างวิธีการต่างๆ ที่มีชื่อคล้ายกันซึ่งทำงานแตกต่างกันในประเภทของพารามิเตอร์อินพุตที่ยอมรับเป็นอาร์กิวเมนต์
ตัวอย่าง
ให้เรามาดูตัวอย่างการใช้งานฟังก์ชั่น overloading−
<?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);
?> ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้−
9.42648
การแทนที่ฟังก์ชันใน PHP
ในการแทนที่ฟังก์ชัน คลาส parent และ child มีชื่อฟังก์ชันเดียวกันกับและจำนวนอาร์กิวเมนต์
ตัวอย่าง
ให้เรามาดูตัวอย่างการใช้งานฟังก์ชัน override-
<?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();
?> ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้−
Base class function! Base class function declared final! Derived class function! Base class function declared final!