Heim > Backend-Entwicklung > PHP-Tutorial > Gültigkeitsbereich der PHP-Abschlussvariablen

Gültigkeitsbereich der PHP-Abschlussvariablen

藏色散人
Freigeben: 2023-04-08 06:54:01
nach vorne
2458 Leute haben es durchsucht

In Projekten ist es unvermeidlich, auf die Form von Abschlüssen zu stoßen. Was ist also der Umfang von Variablen in Abschlüssen? Hier ein paar einfache Beispiele.

e1

function test_1()
{
    $a = 'php';
    $func =  function ($b) use ($a)
    {
       // $a = 'java';
        echo $b.'_'.$a;
    };
    return $func;
}
$test = test_1();
$test('hello');
Nach dem Login kopieren

Das obige Ergebnis gibt hello_php aus, dann können Sie sehen, dass $a als Variable durch die Verwendung an die anonyme Funktion func als Parameter übergeben wird; Wenn $ ein = 'java'-Kommentar entfernt wird, wird das obige Ergebnis hello_java ausgeben

e2: Schreiben Sie die obige Funktion um als

function test_2()
{
    $a = 'php';
    $func =  function ($b) use ($a)
    {
       // $a = 'go';
        echo $b.'_'.$a;
    };
    $a = 'java';
    return $func;
}
$test = test_2();
$test('hello');
Nach dem Login kopieren

Das obige Ergebnis gibt hello_php aus . Die Beschreibung befindet sich in test_2. Wenn $a zum zweiten Mal ein Wert zugewiesen wird, wird dieser nicht an die Funktion func übergeben.

In ähnlicher Weise wird, wenn $a = 'go' entfernt wird, das obige Ergebnis hello_go ausgegeben

e3: Fügen Sie nun einen Verweis auf $a hinzu

function test_3()
{
    $a = 'php';
    $func =  function ($b) use (&$a)
    {
        //$a = 'go';
        echo $b.'_'.$a;
    };
    $a = 'java';
    return $func;
}
$test = test_3();
$test('hello');
Nach dem Login kopieren

Das obige Ergebnis gibt hello_java aus, was darauf hinweist, dass der Wert der Variablen a an die Funktion func übergeben wird, wenn auf die Adresse verwiesen wird.

Ähnlich, wenn $a = 'go' entfernt wird;

Das obige Ergebnis gibt hello_go aus;

Die oben genannten drei einfachen Tests erklären deutlich den Abschluss. Der Umfang des Parameter im Inneren.

Wenn keine Adressreferenz verwendet wird, ändert sich der Variablenwert der anonymen Funktion nicht, wenn sich die externe Variable ändert. (Bedeutung des Abschlusses)

Nach Verwendung der Adressreferenz wird der Parameterwert durch den Parameterwert der externen Funktion geändert.

Weitere PHP-Kenntnisse finden Sie im PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonGültigkeitsbereich der PHP-Abschlussvariablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage