在使用call_user_func调用匿名函数体之前,是否可以将一行代码插入到匿名函数体中?
例如,假设我想要注入以下内容:
$some_var = 1;进入:
function foo()
{
echo $some_var;
}变成:
function foo()
{
$some_var = 1;
echo $some_var;
}我知道您可以将参数传递给call_user_func,但这些参数只能作为索引数组使用。我需要它作为一个变量。
或者甚至可以在调用闭包之前添加一个"use“到闭包中……
编辑:
进一步的例子,流行的PHP框架是如何做到这一点的:
Route::group(['domain' => '{subdomain}.domain.com'], function()
{
echo $subdomain;
});他们神奇地调用这个匿名函数并注入$subdomain
发布于 2016-09-12 01:46:33
你不能,而且你永远也不应该这么做。会有更好的方法来实现你的目标。为了回答一些实际的帮助,我将提出以下建议:
function foo($extraAction)
{
switch ($extraAction){
case "action1":
$some_var = 1;
break;
case "action2":
//another action
break;
default:
//do something by default
}
echo $some_var;
}这是你能得到的最接近的了。
https://stackoverflow.com/questions/39438862
复制相似问题