JavaScript中的“call on declare”匿名函数相当于?

时间:2012-11-01 17:22:41

标签: php javascript closures global anonymous-function

我有一些代码需要在PHP脚本中执行,但我不希望在此脚本中创建的变量在其他地方可见。

我想做的就像我们可以使用JavaScript一样:

(function() {
    // Do some stuff
})();

但我想用PHP做这件事。

我想象过以下代码:

$main = function()
{
    global $main;
    unset($main);

    // Do some stuff
}

$main();

在PHP 5.3之前不支持它,我需要它。

使用PHP 5.2还有另一种方法吗?

提前致谢:)

2 个答案:

答案 0 :(得分:0)

你可以使用create_function(),但我认为这很难看。

(我的代码示例有一个更大的问题,也许你的真实代码:你正在使用非常糟糕的全局状态。)

答案 1 :(得分:0)

call_user_func(
    // create_function('$param1, $param2', '
    function($param1, $param2) { 
        // do stuff
    }
    // ')
, "param1", "param2");

使用为php<注释掉的行5.3

但我认为很多人会同意这是一件很奇怪的事情。