Der Inhalt dieses Artikels befasst sich mit dem Wissen über Funktionen beim PHP-Lernen. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.
Ein gültiger Funktionsname beginnt mit einem Buchstaben oder Unterstrich, gefolgt von Buchstaben, Zahlen oder Unterstrichen.
Funktionsnamen können größenunabhängig sein (tatsächlich sind es Funktionsnamen und Methodennamen von PHP). , bei Klassennamen wird die Groß-/Kleinschreibung nicht beachtet); >PHP unterstützt keine Funktionsüberladung und es ist nicht möglich, deklarierte Funktionen aufzuheben oder neu zu definieren.
<?php Test(); # function test. function test() { echo &#39;function test.&#39;; }
<?php $i = 1; add($i); echo $i; # 1 function add($test) { $test++; }
&
In PHP 5.5 und früheren Versionen, wenn Sie damit umgehen müssen Bei einer unbestimmten Anzahl von Parametern können Sie die folgenden Funktionen verwenden:
<?php $i = 1; add($i); echo $i; # 2 function add(&$test) { $test++; }
function add($a, $b) { return $a + $b; } echo add(1,2,5); # 3
In PHP 5.6 und höher implementiert die func_num_args()
-Syntax eine variable Anzahl von Parameterlisten: func_get_arg()
Variable Funktion func_get_args()
<?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 )
...
Hinweis: Variablenfunktionen unterstützen keine Sprachstrukturen in PHP, wie z. B.
function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); # 10
<?php function foo() { echo "In foo()"; } $func = &#39;foo&#39;; $func(); # In foo()
echo
Abschlussfunktionen können auch als Wert von Variablen verwendet werden:
<?php print_r(array_map(function($value) { return $value * 2; }, range(1, 5))); # Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
verzögern müssen, müssen Sie eine Referenz verwenden, andernfalls wird eine Kopie erstellt beim Definieren Kopieren Sie es in
:$greet = function($name) { printf("Hello %s\r\n", $name); }; $greet(&#39;World&#39;); # Hello World
use
Dynamischer Funktionsaufruf
<?php $message = &#39;hello&#39;; $example = function () use ($message) { echo $message; }; $example(); # hello
oder < aufrufen 🎜> Funktion: use
use
<?php $result = 0; $one = function() use ($result) { var_dump($result); }; $two = function() use (&$result) { var_dump($result); }; $result++; $one(); # int(0) $two(); # int(1)
call_user_func()
call_user_func_array()
<?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-Lernfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!