Funktionsdefinition
Gültige Funktionsnamen beginnen mit Buchstaben oder Unterstrichen, gefolgt von Buchstaben, Zahlen oder Unterstrichen;
Funktionsnamen können größenunabhängig sein (eigentlich , Bei PHP-Funktionsnamen, Methodennamen und Klassennamen wird die Groß-/Kleinschreibung nicht beachtet. Die Funktion muss vor dem Aufruf nicht definiert werden, es sei denn, eine Funktion wird bedingt definiert.
PHP unterstützt nicht Es kommt zu einer Funktionsüberladung, und es ist nicht möglich, deklarierte Funktionen aufzuheben oder neu zu definieren.
<?php Test(); # function test. function test() { echo 'function test.'; }
1. Wertübergabe
Ändert den Wert des Parameters innerhalb der Funktion hat keinen Einfluss auf den Wert des Parameters außerhalb der Funktion:
<?php $i = 1; add($i); echo $i; # 1 function add($test) { $test++; }
bleibt der Wert des Parameters innerhalb und außerhalb der Funktion konsistent. Um als Referenz zu übergeben, können Sie das Symbol & vor dem Parameter in der Funktionsdefinition hinzufügen:
<?php $i = 1; add($i); echo $i; # 2 function add(&$test) { $test++; }
PHP unterstützt eine Variable Anzahl der Parameter. Die beim Definieren einer Funktion aufgeführten Parameter sind eigentlich nur die Mindestparameter; beim Aufruf sind mehrere Parameter zulässig, die zusätzlichen Parameter werden jedoch ignoriert:
function add($a, $b) { return $a + $b; } echo add(1,2,5); # 3
In PHP 5.5 und früheren Versionen, wenn Sie eine verarbeiten müssen Wenn die Anzahl der Parameter unsicher ist, können Sie die folgenden Funktionen verwenden:
func_num_args() – Gibt die Anzahl der an die Funktion übergebenen Parameter zurück
func_get_arg() – Gibt die angegebenen Parameter zurück
func_get_args() – Gibt die Argumentliste als Array zurück
<?php function func() { $argc = func_num_args(); $argv = func_get_args(); switch ($argc) { case 0: echo "没有参数。<br />"; break; case 1: echo "只有1个参数。它是:" . func_get_arg(0) . "。<br />"; break; case 2: echo "有2个参数。它们是:" . func_get_arg(0) . "," . func_get_arg(1) . "。<br />"; break; default: echo "超过2个参数。它们是:"; print_r($argv); break; } } func(); # 没有参数。 func(1); # 只有1个参数。它是:1。 func(1,2); # 有2个参数。它们是:1,2。 func(1,2,3,4,5); # 超过2个参数。它们是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
In PHP 5.6 und höher wird eine variable Anzahl von Argumentlisten implementiert durch... Syntax:
function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); # 10
Variable Funktionen
PHP unterstützt das Konzept variadischer Funktionen – wenn nach einem Variablennamen Klammern stehen, sucht PHP nach einer Funktion mit demselben Namen wie der Variablenwert und versucht, sie auszuführen:
<?php function foo() { echo "In foo()"; } $func = 'foo'; $func(); # In foo()
Hinweis: Variablenfunktionen unterstützen keine Sprachstrukturen in PHP, wie Echo, Print usw.
Anonyme FunktionenIn PHP ermöglichen anonyme Funktionen, auch Abschlussfunktionen genannt, die temporäre Erstellung einer Funktion ohne angegebenen Namen. In Rückruffunktionen häufig verwendete Parameter:
<?php print_r(array_map(function($value) { return $value * 2; }, range(1, 5))); # Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Abschlussfunktionen können auch als Wert von Variablen verwendet werden:
$greet = function($name) { printf("Hello %s\r\n", $name); }; $greet('World'); # Hello World
Abschlüsse können Variablen vom übergeordneten Bereich erben. Solche Variablen sollten mit dem Sprachkonstrukt „use“ übergeben werden:
<?php $message = 'hello'; $example = function () use ($message) { echo $message; }; $example(); # hello
Wenn Sie die Bindung der verwendeten Variablen verzögern müssen, müssen Sie eine Referenz verwenden, andernfalls wird eine Kopie erstellt und verwendet, wenn sie verwendet wird ist definiert:
<?php $result = 0; $one = function() use ($result) { var_dump($result); }; $two = function() use (&$result) { var_dump($result); }; $result++; $one(); # int(0) $two(); # int(1)
In PHP können Sie Funktionen nicht nur direkt aufrufen, sondern auch indirekt über call_user_func() oder call_user_func_array() aufrufen. Funktion:
<?php function named_func($param1, $param2) { echo "这是一个命名函数。参数是:$param1 和 $param2 。<br />"; } call_user_func("named_func", "PARAM1", "PARAM2"); call_user_func_array("named_func", array("PARAM1", "PARAM2"));
Das obige ist der detaillierte Inhalt vonPHP-Lernzusammenfassungsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!