如何在数组
中定义和执行函数例如我有一个数组
$a="a";
$b="b";
$c="c";
$array=array(
"a"=>$a,
"b"=>$b,
"c"=>function($c){
//do something
return output
}
)
这里的输出应该是
Array
(
[a] => a
[b] => b
[c] => "new value of c"
)
但实际上我正在
Array
(
[a] => a
[b] => b
[c] => Closure Object
(
[parameter] => Array
(
[$c] =>
)
)
)
注意:我可以在此之外定义一个函数并调用该函数但我不想这样做
答案 0 :(得分:3)
由于closure是一个函数,因此必须执行才能获得响应。以下是执行和返回响应的方法
$c = 'awesome';
$array=array(
"a"=>'test2',
"b"=> 'test',
"c"=> call_user_func(function() use ($c) {
//do something
return $c;
})
);
var_dump($array);//array(3) { ["a"]=> string(5) "test2" ["b"]=> string(4) "test" ["c"]=> string(7) "awesome" }
答案 1 :(得分:0)
您可以直接分配给某个变量并调用该函数并传递参数,而不是在数组中执行该函数,然后您可以在数组中使用该指定的变量。
$a="a";
$b="b";
$c="c";
$d = SomeFunction($c); <-- assigning to variable
$array=array(
"a"=>$a,
"b"=>$b,
"c"=> $d
)