Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung von drei Beispielen für den Aufruf benutzerdefinierter Funktionen in PHP

Ausführliche Erläuterung von drei Beispielen für den Aufruf benutzerdefinierter Funktionen in PHP

伊谢尔伦
伊谢尔伦Original
2017-06-26 10:01:371211Durchsuche

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(&#39;a&#39;, "111","222");   
call_user_func(&#39;a&#39;, "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(&#39;a&#39;, 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(&#39;ClassA&#39;,&#39;bc&#39;), 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(&#39;a&#39;, $c);   
echo $c;//显示 1   
call_user_func_array(&#39;a&#39;, 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(&#39;increment&#39;, $a);
echo $a; // 0
call_user_func_array(&#39;increment&#39;, 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!

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