在PHP中有一个名为extract
的函数,它接受一个数组,并将您的数据转换为PHP变量。当我需要将变量发送到include时,此函数非常有用。实施例
extract(array( "test" => 123 ));
require "test.php"
所以 test.php :print($test);
退货:123
我需要对函数做同样的事情(我可能不知道)。 PHP 5.4支持use
(Anonymous 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);
}
});
这怎么可能?
答案 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);
}
});