Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP의 함수 오버로딩 및 오버라이드

<시간/>

PHP의 함수 오버로딩

함수 오버로딩은 인수로 받아들이는 입력 매개변수의 유형에서 서로 다르게 작동하는 유사한 이름을 가진 여러 메서드를 만들 수 있도록 하는 기능입니다.

예시

이제 함수 오버로딩을 구현하는 예를 살펴보겠습니다-

<?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의 함수 재정의

함수 재정의에서 부모 및 자식 클래스는 동일한 함수 이름과 인수 수를 가집니다.

예시

이제 함수 재정의를 구현하는 예를 살펴보겠습니다-

<?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!