ฟังก์ชั่นโอเวอร์โหลดใน 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!