【问题标题】:JavaScript "call on declare" anonymous functions equivalent in PHP?PHP中等效的JavaScript“调用声明”匿名函数?
【发布时间】:2012-11-01 17:22:40
【问题描述】:

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

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

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

但我想用 PHP 来做这件事。

我设想了以下代码:

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

    // Do some stuff
}

$main();

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

PHP 5.2 还有其他方法吗?

提前致谢:)

【问题讨论】:

  • 嗯,我刚刚想到了另一种方法:class Main { public static function exec() { } } Main::exec(); 这是一个好习惯吗?
  • eval(),但你不想去那里。
  • 好的,谢谢,但我确实想避免这种情况:P
  • js 是一种非常实用的语言,而 php 不是,所以如果没有一些奇怪的 hack,我认为这是不可能的。

标签: php javascript closures global anonymous-function


【解决方案1】:
call_user_func(
    // create_function('$param1, $param2', '
    function($param1, $param2) { 
        // do stuff
    }
    // ')
, "param1", "param2");

使用为 php

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

【讨论】:

    【解决方案2】:

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

    (我对您的代码示例以及您的真实代码有一个更大的问题:您使用的全局状态非常糟糕。)

    【讨论】:

    • 感谢您的回答!我不确定您所说的“您正在使用非常糟糕的全局状态”是什么意思。
    • 好的!谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2014-09-11
    • 2012-11-07
    相关资源
    最近更新 更多