>  기사  >  백엔드 개발  >  php func_get_args 및 func_num_args 함수 사용법에 대한 자세한 설명

php func_get_args 및 func_num_args 함수 사용법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-08 11:16:151832검색

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==&#39;overloadFun&#39;)  
  {  
   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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.