我希望有一个用PHP编写的函数,它可以创建〜5个参数的匿名函数并返回它们,这样我就可以将它们存储在一个键/值数组中,并在以后调用它们而不需要了解给定的参数,不止一次
E.g。
$fun();
如何在事后实现返回和可重复使用的呼叫?
提前致谢。
答案 0 :(得分:13)
你的意思是这样的吗?
<?php
function setData($user, $pass, $host){
return function() use ($user, $pass, $host){
return array($user, $pass, $host);
};
}
//set the data once
$container = setData('test', 'password', 'localhost');
//use the function without passing the data again (and it should be noted, you
//can't set the data again)
var_dump($container());
输出:
array(3) { [0]=> string(4) "test" [1]=> string(8) "password" [2]=> string(9) "localhost" }
不确定您的用例,但对于我的示例,该函数的输出可以是格式化的DNS以及简单数组。
如其他地方所述,func_get_args可以使用任意数量的参数。
答案 1 :(得分:2)
查看http://php.net/manual/en/functions.anonymous.php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
如果需要,$greet
变量可以由其他函数返回。
您可能需要查看的另一件事是func_get_args()
来读取任意参数列表。