PHP를 공부하는 친구들은 PHP 자체에는 functionsoverloading이 없고, Java나 C처럼 사용법은 물론이고, 좀 더 자세히 살펴보면 func_get_args()를 사용할 수 있다는 사실을 모두 알고 있습니다. 및 func_num_args() 함수는 함수 오버로딩을 구현합니다. 이 두 함수는 함수 오버로딩을 구현합니다.
1.
코드는 다음과 같습니다.
function overloadFun($param1, $param2 = '1',$param3 = true) { // do something }
func_get_args() 및 call_user_func_array() 함수를 사용하면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!