PHP 嵌套函数与匿名函数作用域问题
phpcn_u1582
phpcn_u1582 2017-05-18 10:45:34
[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();

同样,匿名函数为什么也是通过传参方式来获取外部函数的变量?

phpcn_u1582
phpcn_u1582

全部回复(1)
高洛峰

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号