PHP를 공부하는 친구들은 PHP 자체에는 함수 오버로딩이 없다는 사실을 모두 알고 있습니다. Java나 C처럼 사용법은 말할 것도 없고요. 하지만 좀 더 자세히 살펴보면 func_get_args()와 func_num_args를 사용할 수 있다는 것을 알게 될 것입니다. PHP. () 함수는 함수 오버로딩의 두 가지 예입니다.
1. 기본 매개변수는 함수에 필요하지 않습니다. 해당 기본값을 추가하면 해당 기능을 완성할 수 있습니다.
코드는 다음과 같습니다.
function overloadFun($param1, $param2 = '1',$param3 = true) { // do something }
func_get_args() 및 func_num_args( ), PHP 코드는 다음과 같습니다.
코드는 다음과 같습니다.
function rewrite() { $args = func_get_args(); if(func_num_args() == 1) { func1($args[0]); } else if(func_num_args() == 2) { func2($args[0], $args[1]); } } function func1($arg) { echo $arg; } function func2($arg1, $arg2) { echo $arg1, ' ', $arg2; } rewrite('PHP'); //调用func1 rewrite('PHP','China'); //调用func2
2. 입력에 따라 원하는 결과를 얻으려면 기본값을 사용합니다. 코드는 다음과 같습니다.
코드는 다음과 같습니다.
function test($name="小李",$age="23"){ echo $name." ".$age; } test(); echo "<br/>"; test("a"); echo "<br/>"; test("a","b");
3. __call($name, $arg) 함수를 사용하여 처리합니다.
코드는 다음과 같습니다:
<?php class OverLoad{ function __call($name, $args) { if($name=='overloadFun') { switch(count($args)) { case 0: $this->overloadFun0();break; case 1: $this->overloadFun1($args[0]); break; case 2: $this->overloadFun2($args[0], $args[1]); break; default: //do something break; } } } function overloadFun0() { echo 0; } function overloadFun1($var1) { echo $var1; } function overloadFun2($var1,$var2) { echo $var1+$var2; } } $test=new OverLoad(); $test->overloadFun()."<br />". $test->overloadFun(1)."<br />". $test->overloadFun(1,2)."<br />"; ?>
이러한 방법을 사용하면 간단한 함수 오버로딩을 구현할 수 있지만 한 가지 주목해야 할 점은 PHP는 약한 유형의 언어로서, java, C++ 등 강력한 형식의 언어처럼 직접 구현할 수는 없습니다. 적어도 현재 버전에서는 다시 로드할 수 있을지 알 수 없습니다.
위 내용은 PHP는 func_get_args 및 func_num_args 함수를 사용하여 함수 오버로딩 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!