php使用闭包内的变量,PHP 闭包之变量作用域-php教程

正在名目中,难免会遇到闭包的方式,那末正在闭包中,变量的作用域究竟是怎样样的呢。上面有几个简略的例子。

e1

function test_1()

{

$a = 'php';

$func = function ($b) use ($a)

{

// $a = 'java';

echo $b.'_'.$a;

};

return $func;

}

$test = test_1();

$test('hello');

以上后果会输入 hello_php 那末能够看到 $a 被作为了变量 经过use通报给了 匿名函数 func 作为参数应用;假如去掉$a = 'java'的正文,那末以上后果会输入 hello_java

e2:将下面的函数改写为

function test_2()

{

$a = 'php';

$func = function ($b) use ($a)

{

// $a = 'go';

echo $b.'_'.$a;

};

$a = 'java';

return $func;

}

$test = test_2();

$test('hello');

以上后果会输入 hello_php 阐明正在test_2中第二次为$a赋值的时分,并无通报的到 func函数外面去。

一样的假如去掉 $a = 'go';那末以上后果会输入 hello_go

e3:如今为$a 加之援用

function test_3()

{

$a = 'php';

$func = function ($b) use (&$a)

{

//$a = 'go';

echo $b.'_'.$a;

};

$a = 'java';

return $func;

}

$test = test_3();

$test('hello');

以上后果会输入 hello_java 阐明正在地点援用的时分 变量 a 的值会通报到 函数func外面去。

一样的假如去掉 $a = 'go';

那末以上后果会输入 hello_go;

以上三个简略的测试,很明确的阐明的闭包外面参数的作用域。

正在不应用地点援用的时分 匿名函数的变量值,没有会跟着内部变量的扭转而扭转。(闭包的意思)

正在应用了地点援用之后,参数值会被内部函数的参数值所扭转。

更多PHP相干常识,请拜访PHP教程!

以上就是PHP 闭包之变量作用域的具体内容,更多请存眷资源魔其它相干文章!

本网站(www.ziyuanmo.com)刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等均由用户发表。

虚拟收费资源付款后概不退款,请考虑在三后支付!如有侵权可联系邮箱:[email protected],会在第一时间解决!

资源猫 » PHP 闭包之变量作用域-php教程

分享到:

你可能感兴趣的:(php使用闭包内的变量)