Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet die Funktionen func_get_args und func_num_args, um die Methode zur Funktionsüberladung zu implementieren

PHP verwendet die Funktionen func_get_args und func_num_args, um die Methode zur Funktionsüberladung zu implementieren

巴扎黑
Freigeben: 2023-03-07 20:54:01
Original
1240 Leute haben es durchsucht

Freunde, die PHP studieren, wissen alle, dass PHP selbst keine Funktionsüberladung aufweist, geschweige denn, wie man es wie Java und C verwendet. Wenn wir jedoch genauer hinschauen, werden wir feststellen, dass wir func_get_args() und func_num_args verwenden können PHP. Hier sind zwei Beispiele für Funktionsüberladung.

1. und das Hinzufügen entsprechender Standardwerte kann die entsprechenden Funktionen vervollständigen:

Der Code lautet wie folgt:

function overloadFun($param1, $param2 = '1',$param3 = true)  {   // do something   }
Nach dem Login kopieren

Verwenden Sie die Funktionen func_get_args() und func_num_args(), Der PHP-Code lautet wie folgt:

Der Code lautet wie folgt:

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
Nach dem Login kopieren


2. Verwenden Sie den Standardwert, um die gewünschten Ergebnisse zu erhalten Basierend auf der Eingabe. Der Code lautet wie folgt:

Der Code lautet wie folgt:

function test($name="小李",$age="23"){    
echo $name."  ".$age;    
}    
test();    
echo "<br/>";    
test("a");    
echo "<br/>";    
test("a","b");
Nach dem Login kopieren

3. Verwenden Sie die Funktion __call($name, $arg). , der Code lautet wie folgt:

Der Code lautet wie folgt:

<?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 />";  
?>
Nach dem Login kopieren

Mit solchen Methoden können wir sie verwenden, um eine einfache Funktionsüberladung zu implementieren, aber eines ist zu beachten ist, dass PHP als schwach typisierte Sprache nicht so stark typisiert werden kann wie Java und C++, Überladung kann direkt implementiert werden, zumindest nicht jetzt. Wir wissen nicht, ob es in zukünftigen Versionen verfügbar sein wird

Das obige ist der detaillierte Inhalt vonPHP verwendet die Funktionen func_get_args und func_num_args, um die Methode zur Funktionsüberladung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage