1

在 PHP 中有一个名为 的函数extract,它接受一个数组,并将您的数据转换为 PHP 变量。当我需要将变量发送到包含时,此功能非常有用。前任。

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

所以test.phpprint($test); 返回123

我需要对函数做同样的事情(我可能不知道)。PHP 5.4 支持use匿名函数),这很有趣。前任。

$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);
    }
});

这怎么可能?

4

1 回答 1

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);
    }
});
于 2013-07-15T01:11:38.950 回答