Es gibt eine benutzerdefinierte Funktion in PHP. Die Funktionen call_user_func, call_user_func_array und call_user_func werden häufig verwendet.
1. Die Funktion call_user_func ähnelt einer speziellen Methode zum Aufrufen einer Funktion:
<?php //call_user_func函数 function a($b,$c) { echo $b; echo $c; } call_user_func('a', "111","222"); call_user_func('a', "333","444"); //显示 111 222 333 444 ?>
Es ist seltsam, die Methode innerhalb der Klasse aufzurufen. Array wird verwendet und new weggelassen. Die Operation spart bis zu einem gewissen Grad Ressourcen:
<?php class a { function b($c) { echo $c; } } call_user_func(array("a", "b"),"111"); //显示 111 ?>
2. Die Funktion call_user_func_array ist der Funktion call_user_func sehr ähnlich, außer dass die Parameter auf andere Weise übergeben werden Parameterstruktur klarer.
Zum Beispiel:
<?php //call_user_func_array 调用自定义函数 function a($b, $c) { echo $b; echo $c; } call_user_func_array('a', array("111", "222")); //显示 111 222 ?>
Die Funktion call_user_func_array kann auch Methoden innerhalb der Klasse aufrufen.
Zum Beispiel:
<?php Class ClassA { function bc($b, $c) { $bc = $b + $c; echo $bc; } } call_user_func_array(array('ClassA','bc'), array("111", "222")); //显示 333 ?>
3. Sowohl die Funktion call_user_func als auch die Funktion call_user_func_array unterstützen Referenzen, wodurch sie funktional konsistenter mit gewöhnlichen Funktionsaufrufen sind:
<?php //call_user_func函数 调用自定义函数 function a($b) { $b++; } $c = 0; call_user_func('a', $c); echo $c;//显示 1 call_user_func_array('a', array($c)); echo $c;//显示 2 ?>
Darüber hinaus unterstützen sowohl die Funktion call_user_func als auch die Funktion call_user_func_array Referenzen.
<?php function increment(&$var) { $var++; } $a = 0; call_user_func('increment', $a); echo $a; // 0 call_user_func_array('increment', array(&$a)); // You can use this instead echo $a; // 1 ?>
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von drei Beispielen für den Aufruf benutzerdefinierter Funktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!