我想知道是否有可能创建一个在匿名函数上使用“ use”来使用differents元素/变量的函数。
例如,我有这种脚本:
$loadScript = function($src) use ($var1, $var2, $var3)
{
ob_start();
include($src);
$result = json_decode(ob_get_clean(),true);
return $result;
};
$result = $loadScript();
而且我想用该脚本创建一个函数,该脚本可以允许对use
使用动态变量,如下所示:
$src = 'src/...';
$arrayOfUseVars = array($var1,$var2,$var3,...);
function loadScript($src, $arrayOfUseVars)
{
function($src) use ($arrayOfUseVars)
{
ob_start();
include($src);
$result = json_decode(ob_get_clean(),true);
return $result;
};
}
我不知道是否可以使用vars数组($ arrayOfUseVars)或其他可以动态添加一个或多个vars的方法($ var1,$ var2,$ var3,$ var4,...) ?
谢谢
无法通过函数调用直接传递命名变量。但是,您可以使用assoc数组声明命名变量。
<?php
$src = 'src/...';
$arrayOfUseVars = array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3,
);
function loadScript($src, $arrayOfUseVars)
{
function($src) use ($arrayOfUseVars)
{
foreach ($arrayOfUseVars as $_name => $_value) {
$$_name = $_value;
}
ob_start();
include($src);
$result = json_decode(ob_get_clean(),true);
return $result;
};
}