Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ฟังก์ชั่นโอเวอร์โหลดและการแทนที่ใน PHP


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