>  기사  >  백엔드 개발  >  PHP는 func_get_args 및 func_num_args 함수를 사용하여 함수 오버로딩 example_php 팁을 구현합니다.

PHP는 func_get_args 및 func_num_args 함수를 사용하여 함수 오버로딩 example_php 팁을 구현합니다.

WBOY
WBOY원래의
2016-05-16 20:32:021224검색

이 기사의 예에서는 PHP가 func_get_args 및 func_num_args 함수를 사용하여 함수 오버로드를 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법 분석은 다음과 같습니다.

PHP를 공부하는 친구들은 PHP 자체에는 함수 오버로딩이 없다는 사실을 모두 알고 있습니다. Java나 C처럼 사용법은 말할 것도 없고요. 하지만 좀 더 자세히 살펴보면 func_get_args()와 func_num_args를 사용할 수 있다는 것을 알게 될 것입니다. PHP. () 함수는 함수 오버로딩을 구현합니다. 다음은 함수 오버로딩의 두 가지 예입니다.

1. 기본 매개변수. 함수에서 필수 매개변수는 아니고 해당 기본값을 추가하면 다음과 같은 코드가 완성됩니다.

코드 복사 코드는 다음과 같습니다.
functionoverloadFun($param1, $param2 = '1',$param3 = 사실)
{
// 뭔가를 하세요
}
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])


 
함수 func1($arg) {
에코 $arg; } 
 
함수 func2($arg1, $arg2) {
에코 $arg1, ' ', $arg2; } 
 
rewrite('PHP'); //func1 호출
rewrite('PHP','중국'); //func2 호출

2. 기본값을 사용하여 입력에 따라 원하는 결과를 얻으세요.


코드 복사 코드는 다음과 같습니다.function test($name="Xiao Li",$age=" 23") {  $name을 에코하세요." ".$age
테스트(); 에코 "
"; 테스트("a")
에코 "
"; test("a","b");

3. __call($name, $arg) 함수를 사용하여 처리합니다.



코드 복사

코드는 다음과 같습니다. 클래스 오버로드{ 함수 __call($name, $args) { if($name=='overloadFun')
{
스위치(개수($args))
{
사례 0: $this->overloadFun0();break
사례 1: $this->overloadFun1($args[0]) break; 사례 2: $this->overloadFun2($args[0], $args[1]) break; 기본값: //무언가를 수행
휴식
}  
}  
}
​  
함수overloadFun0()
{
에코
}

overloadFun1($var1) 함수
{
에코 $var1; }

overloadFun2($var1,$var2) 함수
{
  에코 $var1 $var2; }  


$test=새로운 오버로드()
$test->overloadFun()."
"
$test->overloadFun(1)."
"

$test->overloadFun(1,2)."
"

?>

이러한 방법을 사용하면 간단한 함수 오버로딩을 구현할 수 있지만, 한 가지 주목할 점은 PHP는 약한 유형의 언어로서 Java 및 C와 같은 강력한 유형의 언어처럼 직접 오버로딩을 구현할 수 없다는 것입니다. 현재는 향후 버전에서 사용할 수 있을지 알 수 없습니다.

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

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