PHP-Lernfunktion

不言
不言Original
2018-04-09 16:02:191063Durchsuche

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.

Funktionsdefinition

  1. Ein gültiger Funktionsname beginnt mit einem Buchstaben oder Unterstrich, gefolgt von Buchstaben, Zahlen oder Unterstrichen.

  2. 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.

  3. Parameter der Funktion
  4. 1. Wertübertragung

    Das Ändern des Werts des Parameters innerhalb der Funktion hat keinen Einfluss auf die Funktion Wert des externen Parameters:
<?php
Test(); # function test.

function test()
{
    echo 'function test.';
}
2. Durch die Übergabe als Referenz

bleibt der Wert des Parameters innerhalb und außerhalb der Funktion konsistent. Zur Referenzübergabe können Sie das Symbol
vor dem Parameter in der Funktionsdefinition hinzufügen:

3. Variable Anzahl von Parametern
<?php
$i = 1;
add($i);
echo $i; # 1

function add($test)
{
    $test++;
}
PHP unterstützt eine variable Anzahl von 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:

&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++;
}
– Gibt die Anzahl der an die Funktion übergebenen Parameter zurück.
– Gibt die angegebenen Parameter zurück.

– Gibt den Parameter zurück Liste in Form eines Arrays
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 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 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
usw.

Anonyme Funktion

In PHP ermöglicht eine anonyme Funktion, auch Abschlussfunktion genannt, die temporäre Erstellung einer Funktion ohne angegebenen Namen. In Rückruffunktionen häufig verwendete Parameter:
<?php
function foo() 
{
    echo "In foo()";
}

$func = 'foo';
$func(); # In foo()
echo Abschlussfunktionen können auch als Wert von Variablen verwendet werden: print

Abschlüsse können Variablen vom übergeordneten Bereich erben. Solche Variablen sollten mit dem Sprachkonstrukt

übergeben 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 )
Wenn Sie die Bindung der Variablen in

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('World'); # Hello World

useDynamischer Funktionsaufruf

<?php
$message = 'hello';

$example = function () use ($message) {
    echo $message;
};
$example(); # hello
In PHP können Sie Funktionen nicht nur direkt aufrufen, sondern auch indirekt über

oder Funktion: useuse

Verwandte Empfehlungen:
<?php
$result = 0;
 
$one = function() use ($result) { 
    var_dump($result); 
};
 
$two = function() use (&$result) { 
    var_dump($result); 
};
 
$result++;
 
$one();  # int(0)
$two();  # int(1)

Array für PHP-Lernen

call_user_func()call_user_func_array()

WampSever für PHP-Lernen
<?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!

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
Vorheriger Artikel:PHP-LernzeichenfolgeNächster Artikel:PHP-Lernzeichenfolge