返回匿名函数

时间:2012-03-03 13:01:08

标签: php function return-value anonymous-function

我希望有一个用PHP编写的函数,它可以创建〜5个参数的匿名函数并返回它们,这样我就可以将它们存储在一个键/值数组中,并在以后调用它们而不需要了解给定的参数,不止一次

E.g。

$fun();

如何在事后实现返回和可重复使用的呼叫?

提前致谢。

2 个答案:

答案 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()来读取任意参数列表。