【发布时间】:2011-07-16 15:04:48
【问题描述】:
例如我有以下代码:
function a($param)
{
function b()
{
echo $param;
}
b();
}
a("Hello World!");
这会引发 E_NOTICE 错误,因为 $param 当然是未定义的(在 b() 中)。
我不能将 $param 传递给 b(),因为 b() 应该是 preg_replace_callback() 的回调函数。 所以我有了将 $param 保存在 $GLOBALS 中的想法。
有没有更好的解决方案?
【问题讨论】:
-
仅供参考,如果
b有权访问$param,则将其称为closure。 -
@delnan:你使用哪个 PHP 版本?
-
@Felix Kling:没有,你为什么要问?闭包是一个与语言无关的概念。
-
@delnan:哦,对不起,我其实是想问 OP ;)
-
操作?我在 XAMPP 上有 PHP 5.3.1。
标签: php functional-programming callback global-variables