gpt4 book ai didi

php - 在php中访问嵌套函数中的变量

转载 作者:可可西里 更新时间:2023-11-01 00:35:49 24 4
gpt4 key购买 nike

假设我有两个这样的嵌套函数:

$a = 1;
$b = 2;

function test(){
$b = 20;
function Sum()
{
$b = $GLOBALS['a'] + $b;
}
}
test();
Sum();
echo $b;

现在我想在函数 Sum() 中访问在函数 test() 中声明的 $b 变量;
你好吗?

最佳答案

疯狂猜测模式:
您的函数 Sum() 将“正常”采用两个参数/操作数,例如

function Sum($a, $b) {  
return $a+$b;
}
echo Sum(1, 20);

现在您有了函数 Test() 并且您希望它返回一个函数 fn,它只接受一个参数然后调用 Sum($a, $b)带有一个“预定义”参数和一个传递给 fn 的参数。

这称为柯里化(Currying)或部分应用(取决于您具体实现的是什么),您可以使用 lambda functions/closures 做类似的事情从 PHP 5.3 开始

<?php
function Sum($a, $b) {
return $a + $b;
}

function foo($a) {
return function($b) use ($a) {
return Sum($a, $b);
};
}

$fn = foo(1) // -> Sum(1, $b);
$fn = foo(2) // -> Sum(2, $b);
echo $fn(47);

关于php - 在php中访问嵌套函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8035878/

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