有人知道我如何编写一个函数,它能够创建其他函数,使用变量的内容作为它的名称吗?
这是我在 php 中谈论的基本示例:
function nodefunctioncreator()
{
for ($i =1, $i < 10, $i++)
{
$newfunctionname = "Node".$i;
function $newfunctionname()
{
//code for each of the functions
}
}
}
有人知道可以让我这样做的语言吗?
最佳答案
您可以使用 create_function()
在 PHP 中创建匿名函数.您可以将每个匿名函数分配给变量 $newfunctionname
并使用 call_user_func()
执行它:
$newfunctionname = "Node".$i;
$$newfunctionname = create_function('$input', 'echo $input;');
// Creates variables named Node1, Node2, Node3..... containing the function
我认为这是您在 PHP 中所能获得的最接近的方法,而且看起来不像完全 hack。
我认为直接从变量定义函数是不可能的。这样做对我来说也不太好,因为您会用这些函数污染命名空间。如果匿名函数不起作用,则需要采用面向对象的方法。
关于Php:在 for () 循环中创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111968/