Fungsi bersarang PHP dan isu skop fungsi tanpa nama
phpcn_u1582
phpcn_u1582 2017-05-18 10:45:34
0
1
641
function a()
{
    $demi = '局部变量';
    b($demi);
}
function b($args)
{
    echo $args;
}
a();

Semua fungsi dan kelas dalam PHP mempunyai skop global dan boleh ditakrifkan dalam fungsi dan dipanggil di luar, dan sebaliknya.

Mengapa fungsi b boleh mendapatkan pembolehubah tempatan fungsi a dengan melepasi parameter?

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

Begitu juga, mengapakah fungsi tanpa nama juga memperoleh pembolehubah fungsi luaran melalui hantaran parameter?

phpcn_u1582
phpcn_u1582

membalas semua(1)
小葫芦

Begitulah sebenarnya. Apabila anda memanggil fungsi, parameter yang anda lalui sebenarnya adalah salinan, dan nilainya disalin, yang bersamaan dengan pembolehubah lain dan tidak mempunyai hubungan.
Begitu juga dengan fungsi tanpa nama. Tetapi jika anda ingin menggunakan pembolehubah luaran dalam fungsi tanpa nama, ia tidak boleh diakses.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan