Heim  >  Artikel  >  Backend-Entwicklung  >  Einige leistungsstarke, aber selten verwendete Funktionen in PHP

Einige leistungsstarke, aber selten verwendete Funktionen in PHP

*文
*文Original
2018-01-02 15:09:021003Durchsuche

Dieser Artikel stellt hauptsächlich die leistungsstarken, aber selten verwendeten Funktionen in PHP vor. Er fasst und analysiert einige sehr praktische Funktionen in PHP in Form von Beispielen, einschließlich Funktionsaufruf, Registrierung, Aufruf, Beurteilung und anderen Bedienfähigkeiten. Freunde in Not können darauf verweisen. Ich hoffe, dass es für alle hilfreich ist.

Die Einzelheiten sind wie folgt:

call_user_func_array – Lassen Sie die Parameter in Form eines Arrays vorliegen, um eine Funktion aufzurufen
call_user_func – Rufen Sie eine vorhandene Funktion auf
create_function – eine Funktion erstellen
func_get_arg – den Wert eines Parameters in der Funktion abrufen
func_get_args – alle Parameter der Funktion abrufen und ein Array bilden
func_num_args – die Anzahl der Parameter einer Funktion abrufen
function_exists – Bestimmen, ob eine Funktion vorhanden ist
get_defined_functions – Informationen zu vorhandenen Funktionen abrufen
register_shutdown_function – Eine Funktion registrieren, die ausgeführt wird, nachdem die Seite geladen wurde
register_tick_function – Eine Funktion registrieren, die auf Anfrage aufgerufen wird
unregister_tick_function – Registrierung aufheben eine Funktion, die auf Anfrage aufgerufen wird

get_defined_functions kann alle PHP-Funktionen und benutzerdefinierten Funktionen abrufen:

<?php
function a(){}
$b = get_defined_functions();
print_r($b);
//也许会显示1000多个已定义了的函数:)
?>

Die Funktion function_exists bestimmt, ob eine Funktion existiert (es kann eine PHP-Funktion sein). oder eine benutzerdefinierte Funktion).

<?php
if (function_exists(&#39;a&#39;)) {
  echo "yes";
} else {
  echo "no";
}
function a(){}
// 显示 yes
?>

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

<?php
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 . Es wird tatsächlich ein Array verwendet. Natürlich ist es auch sehr innovativ, new wegzulassen:

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

Die Funktion call_user_func_array ist der Funktion call_user_func sehr ähnlich, übergibt jedoch nur die Parameter in a Auf andere Weise, damit die Parameter Die Struktur ist klarer:

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

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
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
?>

func_num_args-Funktion kann abgerufen werden. Die Anzahl der von der Funktion empfangenen Parameter:

<?php
function a()
{
  echo func_num_args();
}
a(111, 222, 333);
//显示 3
?>

Die Funktion func_get_arg kann den Wert eines übergebenen Parameters abrufen. Im folgenden Beispiel gibt die Funktion nicht an, welche Parameter empfangen werden akzeptiert werden. Verwenden Sie func_get_arg. Sie können auch zusätzliche Parameter abrufen:

<?php
function a()
{
   echo func_get_arg(1);
}
a (111, 222, 333);
//显示 222
?>

Die Funktion func_get_args ist der Funktion func_get_arg sehr ähnlich. Sie ruft alle Parameter als Array auf:

<?php
function a()
{
  $numargs = func_num_args();
  $b = func_get_args();
  for ($i = 0; $i < $numargs; $i++) {
    echo $b[$i];
  }
}
a(111, 222, 333);
//显示 111 222 333
?>

Die Funktion create_function kann eine anonyme Funktion erstellen (der Funktionsname lautet in PHP standardmäßig lambda_1, lambda_2), aber die Form ist ziemlich eigenartig. Bitte beachten Sie, dass die Anweisung im zweiten Parameter durch „;“ getrennt werden muss:

<?php
$newfunc = create_function(&#39;$a,$b&#39;, &#39;return $a + $b;&#39;);
echo $newfunc;
echo $newfunc(2, 3);
//显示 lambda_1 5
?>

register_shutdown_function-Funktion Sie können eine Funktion registrieren, die nach dem Laden der Seite ausgeführt wird (die Funktion ähnelt ein wenig dem Caching). Die register_shutdown_function kann auch als Aufruf der internen Methode der Klasse wie die Funktion call_user_func verwendet werden:

<?php
function a() {
  echo 222 ;
}
echo 111;
register_shutdown_function(&#39;a&#39;);
//显示 111 222
?>
<?php
class a
{
  function b ($c)
  {
   echo $c;
  }
}
register_shutdown_function (array (&#39;a&#39;, &#39;b&#39;), &#39;111&#39;);
//显示 111
?>

register_tick_function und unregister_tick_function Die Funktion muss in Verbindung mit dem Deklarationsprozess-Steuerungsmechanismus verwendet werden, also verstehen wir zunächst Deklaration und Tick:

declare (directive){
statement
}

Tick ist ein Ereignis Dies geschieht jedes Mal, wenn der Interpreter N Low-Level-Anweisungen im Deklarationscodesegment ausführt. Der Wert von N wird mit ticks=N im Direktiventeil der Deklaration angegeben. Die Ereignisse, die in jedem Tick auftreten, werden durch register_tick_function() angegeben. Ein Beispiel lautet wie folgt:

<?
function foo($str) {
static $i = 0;
print "$str: $i<br>";
$i++;
}
register_tick_function("foo", "count");
declare (ticks = 6) {
for($i=0; $i<20; $i++) {
echo "$i<br>";
}
}
?>

In der Prozesssteuerung „declare(ticks = N){statement}“ in diesem Beispiel wird jedes Mal, wenn 6 Codezeilen (ticks = 6) ausgeführt werden, foo() Die Funktion muss einmal ausgeführt werden. Durch Ändern des Werts der Ticks können wir unterschiedliche Ausführungsergebnisse erzielen.

Verwandte Empfehlungen:

Einführung in die PHP-Funktionssyntax 1_PHP-Tutorial

Ein kleiner Vergleich der Effizienz der PHP-Funktionsausführung_PHP-Tutorial

PHP-Funktionsverwendungsmethode und Funktionsdefinitionsmethode_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonEinige leistungsstarke, aber selten verwendete 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