Php:在 for () 循环中创建函数

标签 php c

有人知道我如何编写一个函数,它能够创建其他函数,使用变量的内容作为它的名称吗?

这是我在 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/

相关文章:

c - C编程创建和写入文件

c - c中无限字符串的strcat

java - 在Blackberry中集成C和JAVA

javascript - 如何将validation_errors()放在文本字段的右侧?

php - Laravel Blade 中的动态行数

php - where 和 while 循环似乎不起作用

php - 为什么 Google Analytics 在第 2 周期中使用时不记录点击次数?

c - 根据 C 中二维数组中列中的值重新排列行

c - 如何查找结构成员与 cscope 一起使用并忽略局部变量?

php - 峰值计数器算法