动态"使用"到PHP匿名函数

时间:2013-07-15 01:09:45

标签: php anonymous-function

在PHP中有一个名为extract的函数,它接受一个数组,并将您的数据转换为PHP变量。当我需要将变量发送到include时,此函数非常有用。实施例

    extract(array( "test" => 123 ));
    require "test.php"

所以 test.php print($test); 退货123

我需要对函数做同样的事情(我可能不知道)。 PHP 5.4支持useAnonymous Function),这非常有趣。实施例

$test = 123;
call_user_func(function() use($test) {
    print($test);
});

但是,我需要传递其他名称和金额的变量。 类似

$useArgs = array( "a" => 1, "b" => 2, "c" => 3 );
call_user_func(function() use(extract($useArgs)) {
    print($a);
    print($b);
    print($c);

    if(isset($d)) {
        print($d);
    }
});

这怎么可能?

1 个答案:

答案 0 :(得分:2)

只需从功能

中调用extract()即可
$useArgs = array( "a" => 1, "b" => 2, "c" => 3 );
call_user_func(function() use($useArgs) {
    extract($useArgs);
    print($a);
    print($b);
    print($c);

    if(isset($d)) {
        print($d);
    }
});