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 に答える