cari

Rumah  >  Soal Jawab  >  teks badan

Fungsi bersarang PHP dan isu skop fungsi tanpa nama

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_u1582phpcn_u15822776 hari yang lalu632

membalas semua(1)saya akan balas

  • 高洛峰

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

    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.

    balas
    0
  • Batalbalas