PHP 嵌套函数与匿名函数作用域问题
本文介绍了PHP 嵌套函数与匿名函数作用域问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
function a()
{
$demi = '局部变量';
b($demi);
}
function b($args)
{
echo $args;
}
a();
PHP中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。
为什么函数b能够通过传参方式获取函数a的局部变量?
function tesxt()
{
$var = 10;
$echonumber = function($num) {
echo $num;
};
$echonumber($var);
}
tesxt();
同样,匿名函数为什么也是通过传参方式来获取外部函数的变量?
解决方案
其实是这样的。当你调用函数的时候,你传的参数其实是一个副本,值复制,相当于另外一个变量,没有任何关系。
同理匿名函数也是一样的。但是你如果想要在匿名函数中使用外部变量,是无法访问的。
这篇关于PHP 嵌套函数与匿名函数作用域问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文