2

我一直在使用这样的回调函数:

private function make_f($arg1, $arg2)
{
    $callback =
        function ($my_var) use ($arg1, $arg2)
        {
            return $my_var  * $arg1 * arg2;
        };
    return $callback;
}

由 PHP 5.3.0 支持,但我的托管服务提供商有 PHP 5.2.6,所以它不起作用。有没有办法以某种方式修复它?

4

1 回答 1

4

这真的取决于是什么$arg。对于任何可能的值$arg,我只能想出这样的东西:

public static $arguments = array();

private function make_f($arg)
{
    $variable_name = uniqid();

    ThisClass::$arguments[$variable_name] = $arg; // Replace ThisClass with the name of the actual class

    $callback = create_function('$my_var', 'return $my_var * ThisClass::$arguments[\'' . $variable_name . '\'];');

    return $callback;
}

这是一个演示。

于 2012-04-17T23:04:52.483 回答