返回匿名函数


Return anonymous functions

我想要一个用PHP编写的函数,它可以创建5个参数的匿名函数并返回它们,这样我就可以将它们存储在一个键/值数组中,然后在不了解给定参数的情况下多次调用它们。

例如

$fun();

之后如何实现返回和可重用调用?

提前谢谢。

你的意思是这样的吗?

<?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());

输出:

阵列(3){[0]=>字符串(4)"测试"[1] =>string(8)"密码"[2] =>string(9)"localhost"}

不确定您的用例,但对于我的示例,函数的输出可以是格式化的DNS以及简单的数组。

正如在其他地方提到的,func_get_args将使它与任何数量的参数一起工作。

看看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()