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!