Php 是否可以将参数传递给assoc数组?

Php 是否可以将参数传递给assoc数组?,php,parameter-passing,Php,Parameter Passing,考虑这样一个数组: ... "key1" => some_call("val1", $params), "key2" => some_call("val1", $params), ... <?php function some_call($arg,$params) { echo "$arg: ",count($params),"\n"; } $array = array( 'key1' => function($params) { some_cal

考虑这样一个数组:

...
"key1" => some_call("val1", $params),
"key2" => some_call("val1", $params),
...
<?php

function some_call($arg,$params)
{
     echo "$arg: ",count($params),"\n";
}

$array = array(
    'key1' => function($params) { some_call('val1',$params); },
    'key2' => function($params) { some_call('val1',$params); }
);

$array['key1'](array(1,2,3));
现在我想在寻址数组条目时传递参数($params)

$x = $array['key1'] , $params ... 
有没有办法做这样的事

更新

我为什么要这样做? 我使用的是codeigniter,在语言文件中是一个assoc数组,右边保存着预测语言中的文本。我想滥用这一点,想加载 电子邮件模板,其中我传递了一个参数,该参数保存模板中要替换的shell值

更新2

对于PHP5.2.*

是否将$x作为数组

$x[] = $array['key1'] , $params ... 

或连接的字符串

$x = $array['key1'] . $params ... // use the . to concat

由于PHP5.3,您可以使用匿名函数。也许你想要这样的东西:

...
"key1" => some_call("val1", $params),
"key2" => some_call("val1", $params),
...
<?php

function some_call($arg,$params)
{
     echo "$arg: ",count($params),"\n";
}

$array = array(
    'key1' => function($params) { some_call('val1',$params); },
    'key2' => function($params) { some_call('val1',$params); }
);

$array['key1'](array(1,2,3));

而不是匿名函数(即,如果您使用的是PHP5<5.3),那么您可以使用该函数来实现您想要的:

function some_call($arg, $params)
{
     echo $arg, ': ', count($params), "\n";
}

$array = array(
    'key1' => create_function('$params', 'some_call("val1", $params);'),
    'key2' => create_function('$params', 'some_call("val2", $params);'),
);

$array['key1'](array(1,2,3));

你能澄清你的问题吗
“key1”=>some_-call(“val1”,$params)
some_-call(“val1”,$params)
的返回值添加到数组中。如果您解释了您试图用代码实现的目标,这会有所帮助。。。也许有一个更简单的解决方案(可能不是参数部分)。我可以在5.2.1版本上安装/插入该功能吗?你可以使用
create\u函数
,但你不会。也可以定义普通的非lambda函数。另一个变体是使用将PHP5.3源代码编译为PHP5.2源代码。但我认为这还不够稳定。在实际代码中使用:'key1'=>create_函数('$params','returnsome_调用('val1',$params);')。然后我可以直接访问结果