gpt4 book ai didi

PHP闭包范围问题

转载 作者:可可西里 更新时间:2023-10-31 22:41:49 24 4
gpt4 key购买 nike

显然 $pid 超出了这里的范围。它不应该在功能中“关闭”吗?例如,我相当确定这就是闭包在 javascript 中的工作方式。

根据一些文章php closures are broken , 所以我无法访问这个

那么如何从这个闭包函数访问$pid呢?

class MyClass {
static function getHdvdsCol($pid) {
$col = new PointColumn();
$col->key = $pid;
$col->parser = function($row) {
print $pid; // Undefined variable: pid
};
return $col;
}
}

$func = MyClass::getHdvdsCol(45);
call_user_func($func, $row);

编辑 我已经通过使用绕过了它:$col->parser = function($row) use($pid)。但是我觉得这很丑。

最佳答案

您需要指定以这种方式关闭哪些变量:

function($row) use ($pid) { ... }

关于PHP闭包范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6543419/

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