如何在PHP闭包中插入变量?
基本上,如何在PHP闭包中插入变量?,php,Php,基本上,$addValue是一个函数。无法更改参数编号。这是因为doSomethingWith20Params($addValue,”)需要具有3个参数的函数 在PHP中我得到了 function updateParameters($landing) { $addValue = function ($final,$parametername,$value) { $value1=str_replace ( '{landing}' , $landing ,$val
$addValue
是一个函数。无法更改参数编号。这是因为doSomethingWith20Params($addValue,”)代码>需要具有3个参数的函数
在PHP中我得到了
function updateParameters($landing)
{
$addValue = function ($final,$parametername,$value)
{
$value1=str_replace ( '{landing}' , $landing ,$value );
$_GET[$parametername]=$value1;
return "";
};
doSomethingWith20Params($addValue, "") ;
}
只需使用use
关键字,将变量绑定到闭包
5 446.6299 486504 doSomethingWith20Params( ???, ???, ??? ) ...\cutoolsgeneral.php:204
6 552.2776 487112 {closure:H:\business\shared\Dropbox\htdocs\tools2\cutoolsgeneral.php:197-202}( ???, ???, ??? ) ...\cutoolsgeneral.php:188
为什么不能更改参数的数量?首先您自己定义它,然后您可以创建一个具有动态参数数量的函数。或者,如果第三个参数是固定的,则可以使用use
表示法。
function updateParameters($landing)
{
$addValue = function ($final,$parametername,$value) use ($landing)
{
$value1=str_replace ( '{landing}' , $landing ,$value );
$_GET[$parametername]=$value1;
return "";
};
doSomethingWith20Params($addValue, "") ;
}