首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子函数中的访问变量

子函数中的访问变量
EN

Stack Overflow用户
提问于 2022-10-07 09:49:59
回答 1查看 22关注 0票数 -1

我创建了这个函数,并注意到在执行过程中出现了一个问题。我无法在子函数中得到$names_from_source的结果。没有错误,它检测变量,但它的值总是为NULL。

代码语言:javascript
运行
复制
/*
source: array of MyObject
copy: array of MyObject
return: return duplicated objects based on name
*/
function get_all_duplicated($source, $copy) {
    $names_from_source = array_map(fn($obj): string => $obj->name, $source);
    var_dump($names_from_source); // return list of names
    return array_filter($copy, function($obj) {
        global $names_from_source;
        var_dump($names_from_source); // return NULL
        return in_array($obj->name, $names_from_source);
    });
}

为什么?谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2022-10-07 09:59:49

由于$names_from_source不是全局变量,所以不能使用全局变量。它是父函数的局部变量。

要在子函数中调用它,我必须使用术语use

代码语言:javascript
运行
复制
/*
source: array of MyObject
copy: array of MyObject
return: return duplicated objects based on name
*/
function get_all_duplicated($source, $copy) {
    $names_from_source = array_map(fn($obj): string => $obj->name, $source);
    var_dump($names_from_source); // return list of names
    return array_filter($copy, function($obj) use($names_from_source) {
        return in_array($obj->name, $names_from_source);
    });
}
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73985353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档