Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Verwendung der PHP-Funktionen func_get_args und func_num_args

Detaillierte Erläuterung der Verwendung der PHP-Funktionen func_get_args und func_num_args

伊谢尔伦
伊谢尔伦Original
2017-07-08 11:16:151769Durchsuche

Freunde, die PHP lernen, wissen alle, dass PHP selbst keine FunktionenÜberlastung hat und auch nicht sagt, wie man es wie Java oder C verwendet, aber wenn wir es tun Wenn Sie genauer hinschauen, werden Sie feststellen, dass Sie die Funktionen func_get_args() und func_num_args() in PHP verwenden können, um eine Funktionsüberladung zu implementieren.

1. Wenn dies in einer Funktion der Fall ist, ist dies kein erforderlicher Parameter, und das Hinzufügen des entsprechenden Standardwerts kann die entsprechende Funktion wie folgt vervollständigen:

Der Code lautet wie folgt:

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

Bei Verwendung der Funktionen func_get_args() und call_user_func_array() lautet der PHP-Code wie folgt:

Der Code lautet wie folgt 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


2. Verwenden Sie den Standardwert für , um die gewünschten Ergebnisse basierend auf der Eingabe zu erhalten. 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");


3. Verwenden Sie zur Verarbeitung die Funktion call($name, $arg). 🎜>Der Code lautet wie folgt:

Mit dieser Methode können wir sie zum Implementieren einer einfachen Funktionsüberladung verwenden. Beachten Sie jedoch, dass PHP als schwach typisierte Sprache nicht direkt implementiert werden kann Überladung wie bei stark typisierten Sprachen wie Java und C++, zumindest nicht jetzt. Zukünftige Versionen werden es nicht geben. Es gibt nichts, was wir nicht wissen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der PHP-Funktionen func_get_args und func_num_args. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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