Heim >Backend-Entwicklung >PHP-Tutorial >So rufen Sie eine benutzerdefinierte Funktion in PHP mit der Funktion „call user func()' auf

So rufen Sie eine benutzerdefinierte Funktion in PHP mit der Funktion „call user func()' auf

墨辰丷
墨辰丷Original
2018-06-06 11:48:051465Durchsuche

Dieser Artikel stellt hauptsächlich vor, wie man die Funktion func() in PHP aufruft, um selbst definierte Funktionen aufzurufen. Ich hoffe, dass er für alle hilfreich ist.

Die Funktion call_user_func ähnelt einer speziellen Methode zum Aufrufen einer Funktion. Die Verwendungsmethode ist wie folgt:

<?php
function nowamagic($a,$b) 
{ 
 echo $a; 
 echo $b; 
} 
call_user_func(&#39;nowamagic&#39;, "",""); 
call_user_func(&#39;nowamagic&#39;, "",""); 
//显示  
?>

Es ist seltsam, die Methode innerhalb der Klasse aufzurufen. Sie verwendet tatsächlich eine array. Ich weiß nicht, wie der Entwickler das gemacht hat. New wird natürlich weggelassen, was ziemlich innovativ ist:

<?php
class a { 
 function b($c) 
 { 
  echo $c; 
 } 
} 
call_user_func(array("a", "b"),""); 
//显示 
?>

Die Funktion call_user_func_array ist call_user_func sehr ähnlich, außer dass die Parameter anders übergeben werden So können Sie die Parameterstruktur klarer gestalten:

<?php
function a($b, $c) 
{ 
 echo $b; 
 echo $c; 
} 
call_user_func_array(&#39;a&#39;, array("", "")); 
//显示 
?>

Die Funktion call_user_func_array kann auch Methoden innerhalb der Klasse aufrufen:

<?php
Class ClassA 
{ 
function bc($b, $c) { 
  $bc = $b + $c; 
echo $bc; 
} 
} 
call_user_func_array(array(&#39;ClassA&#39;,&#39;bc&#39;), array("", "")); 
//显示 
?>

Sowohl die Funktion call_user_func als auch die Funktion call_user_func_array unterstützen Referenzen, wodurch sie funktional konsistenter werden mit gewöhnlichen Funktionsaufrufen:

<?php
function a($b) 
{ 
 $b++; 
} 
$c = ; 
call_user_func(&#39;a&#39;, $c); 
echo $c;//显示 
call_user_func_array(&#39;a&#39;, array($c)); 
echo $c;//显示 
?>
另外,call_user_func函数和call_user_func_array函数都支持引用。
view sourceprint?
<?php
function increment(&$var)
{
 $var++;
}
$a = ;
call_user_func(&#39;increment&#39;, $a);
echo $a; // 
call_user_func_array(&#39;increment&#39;, array(&$a)); // You can use this instead
echo $a; // 
?>

Das Folgende ist eine Einführung in die Verwendung von call_user_func zum Aufrufen einer benutzerdefinierten Funktion

Mit der Funktion call_user_func können Sie dies tun Rufen Sie eine benutzerdefinierte Funktion auf, indem Sie eine Zeichenfolgenfunktion übergeben, und sie unterstützt Quote.

1.mixed call_user_func ( callable $callback [, Mixed $parameter [, Mixed $... ]] )

Rufen Sie die vom ersten Parameter bereitgestellte Anpassungsfunktion auf , die folgenden Parameter sind die Parameter der benutzerdefinierten Funktion und das Ergebnis der benutzerdefinierten Funktion wird zurückgegeben

function say($word)
{
 echo $word;
}
call_user_func(&#39;say&#39;, &#39;hello world&#39;); //hello world
当然也可以调用类中的方法:
class A {
 function say($word = &#39;&#39;)
 {
  echo $word;
 }
} 
$a = new A(); //注意,必须是要实例化的,除非是static
call_user_func(array($a, &#39;say&#39;), &#39;hello world&#39;); //hello world

2.mixed call_user_func_array ( callable $callback , array $param_arr )

Es wird gesagt, dass die Funktionen von call_user_func_array und call_user_func gleich sind, es gibt jedoch einige Unterschiede beim Aufrufen von Parametern:

function a($word)
{
 echo $word;
}
class A {
 function say($word = &#39;&#39;)
 {
  echo $word;
 }
}
call_user_func_array(&#39;a&#39;, array(&#39;hello world&#39;)); //hello world
$a = new A(); //注意,必须是要实例化的,除非是static
call_user_func_array(array($a, &#39;say&#39;), array(&#39;hello world&#39;)); //hello world

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass dies der Fall sein wird hilfreich für das Lernen aller.

Verwandte Empfehlungen:

Verwendung und Beispiele der PHP-Nachrichtenwarteschlange

Verwendung und Beispiele der PHP-Semaphore

PHP-Bildskalierungs- und Schneidefunktionen

Das obige ist der detaillierte Inhalt vonSo rufen Sie eine benutzerdefinierte Funktion in PHP mit der Funktion „call user func()' auf. 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