PHP 嵌套函数与匿名函数作用域问题

查看:72
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆