Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich eine Abschlussfunktion einer PHP-Funktion?

Wie erstelle ich eine Abschlussfunktion einer PHP-Funktion?

WBOY
WBOYOriginal
2024-04-10 10:33:02914Durchsuche

Eine Abschlussfunktion in PHP ist eine anonyme Funktion, die in einer anderen Funktion verschachtelt ist und auf die Variablen der äußeren Funktion zugreifen kann. Das Schlüsselwort use kann für den Zugriff auf externe Variablen in der Abschlussfunktion verwendet werden, was in tatsächlichen Szenarien angewendet werden kann, in denen Rabatte auf jedes Element in der Liste angewendet werden müssen.

PHP 函数的闭包函数如何创建?

Abschlussfunktionen in PHP-Funktionen

Eine Abschlussfunktion ist eine anonyme Funktion, die in einer anderen Funktion verschachtelt ist und auf die Variablen der äußeren Funktion zugreifen kann, auch wenn die äußere Funktion zurückgegeben wurde. Abschlussfunktionen sind in PHP sehr nützlich, da sie die Erstellung wiederverwendbarer Codeblöcke und die Aufrechterhaltung des Zugriffs auf die externe Umgebung ermöglichen.

Eine Abschlussfunktion erstellen

Um eine Abschlussfunktion in PHP zu erstellen, verwenden Sie das Schlüsselwort function, gefolgt von einem optionalen Namen und einer Argumentliste: function 关键字,后跟一个可选的名称和参数列表:

$closure = function($arg1, $arg2) {
    // 函数体
};

闭包函数中的变量范围规则如下:

  • 闭包函数可以访问在其定义位置作用域中声明的所有变量,包括局部变量和参数。
  • 闭包函数不能访问它嵌套在其中的函数之外声明的变量,除非这些变量在闭包函数中被显式地声明为 use

使用 use 关键字

use

function outerFunction($arg1) {
    $outerVar = '外部变量';

    $closure = function() use ($arg1, $outerVar) {
        // 闭包函数可以访问 $arg1 和 $outerVar
    };
}

Variablen in Abschlussfunktionen Die Gültigkeitsbereichsregeln sind wie folgt:

  • Eine Abschlussfunktion kann auf alle Variablen zugreifen, die in dem Bereich deklariert sind, in dem sie definiert ist, einschließlich lokaler Variablen und Parameter.
  • Eine Abschlussfunktion kann nicht auf Variablen zugreifen, die außerhalb der Funktion deklariert sind, in der sie verschachtelt ist, es sei denn, diese Variablen werden in der Abschlussfunktion explizit als use deklariert.
Verwenden Sie das Schlüsselwort use

Das Schlüsselwort use wird verwendet, um externe Variablen in die Abschlussfunktion einzuführen. Zum Beispiel:

function applyDiscount($list, $discountPercentage) {
    // 创建闭包函数来计算折扣
    $discountClosure = function($item) use ($discountPercentage) {
        return $item - ($item * ($discountPercentage / 100));
    };

    // 将折扣闭包函数应用于列表中的每个元素
    return array_map($discountClosure, $list);
}
Praktisches Beispiel

🎜🎜Angenommen, Sie müssen eine Funktion erstellen, die auf jedes Element in einer Liste einen Rabatt anwendet. Dazu können Sie eine Abschlussfunktion erstellen, um den Rabattbetrag zu berechnen: 🎜
function outerFunction($arg1) {
    $outerVar = '外部变量';

    $closure = function() use ($arg1, $outerVar) {
        // 闭包函数可以访问 $arg1 和 $outerVar
        echo "arg1: $arg1<br>";
        echo "outerVar: $outerVar<br>";
    };

    // 调用闭包函数
    $closure();
}

applyDiscount([10, 20, 30], 10); // [9, 18, 27]
🎜🎜Vollständiger Code: 🎜🎜rrreee

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Abschlussfunktion einer PHP-Funktion?. 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