suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Probleme mit verschachtelten PHP-Funktionen und anonymen Funktionsbereichen

function a()
{
    $demi = '局部变量';
    b($demi);
}
function b($args)
{
    echo $args;
}
a();

Alle Funktionen und Klassen in PHP haben einen globalen Geltungsbereich und können innerhalb einer Funktion definiert und außerhalb aufgerufen werden und umgekehrt.

Warum kann Funktion b die lokalen Variablen von Funktion a durch Übergabe von Parametern erhalten?

function tesxt()
{
    $var = 10;
    $echonumber = function($num) {
         echo $num;
    };
    $echonumber($var);
}
tesxt();

Und warum erhalten anonyme Funktionen auch Variablen externer Funktionen durch Übergabe von Parametern?

phpcn_u1582phpcn_u15822855 Tage vor693

Antworte allen(1)Ich werde antworten

  • 高洛峰

    高洛峰2017-05-18 10:47:34

    其实是这样的。当你调用函数的时候,你传的参数其实是一个副本,值复制,相当于另外一个变量,没有任何关系。
    同理匿名函数也是一样的。但是你如果想要在匿名函数中使用外部变量,是无法访问的。

    Antwort
    0
  • StornierenAntwort