gpt4 book ai didi

PHP - 'use()' 或 'global' 在闭包中访问全局变量的区别?

转载 作者:可可西里 更新时间:2023-11-01 13:42:30 25 4
gpt4 key购买 nike

以下两种在闭包中访问全局变量的情况在性能或其他方面是否存在差异:

案例 1:

$closure = function() use ($global_variable) {
// Use $global_variable to do something.
}

案例 2:

$closure = function() {
global $global_variable;
// Use $global_variable to do something.
}

最佳答案

你的两个例子之间有一个重要的区别:

$global_variable = 1;

$closure = function() use ($global_variable) {
return $global_variable;
};

$closure2 = function() {
global $global_variable;
return $global_variable;
};

$global_variable = 99;

echo $closure(); // this will show 1
echo $closure2(); // this will show 99

use 在闭包定义期间获取 $global_variable 的值,而 global 获取 $global_variable< 的当前值 在执行期间。

global 从全局范围继承变量,而 use 从父范围继承它们。

关于PHP - 'use()' 或 'global' 在闭包中访问全局变量的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39741443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com