当前位置: 首页 > 面试题库 >

您可以将函数存储在PHP数组中吗?

芮宇航
2023-03-14
问题内容

例如:

$functions = array(
  'function1' => function($echo) { echo $echo; }
);

这可能吗?最好的选择是什么?


问题答案:

推荐的方法是使用匿名函数:

$functions = [
  'function1' => function ($echo) {
        echo $echo;
   }
];

如果要存储已经声明的函数,则可以简单地通过名称将其引用为字符串:

function do_echo($echo) {
    echo $echo;
}

$functions = [
  'function1' => 'do_echo'
];

在PHP的旧版本(<5.3)中,不支持匿名函数,您可能需要诉诸使用create_function(自PHP 7.2起已弃用):

$functions = array(
  'function1' => create_function('$echo', 'echo $echo;')
);

所有这些方法在callable伪类型的文档中列出。

无论选择哪种功能,都可以直接调用该函数(PHP≥5.4)或使用call_user_func``call_user_func_array

$functions['function1']('Hello world!');

call_user_func($functions['function1'], 'Hello world!');


 类似资料:
  • 问题内容: 好吧,我写了一些代码,我所做的只是for循环,但是更改了我调用的方法。我尝试使用for循环,这样会更整洁(出于好奇,看是否可以完成),但是当我这样做时它不会编译,因为它无法识别其中的项目我认为将数组作为一种方法。这就是我所拥有的: 当我尝试编译时,我得到 (它引用while循环中的第一条语句) 所以,我认为这可能是因为我将其设置为String类型的Array?有方法类型吗?这是可能吗?

  • 问题内容: 我是Java新手。我如何在HashMap中存储整数值数组,之后我将此HashMap写到txt文件中,但此刻目前不重要。我可以存储单个字段,但不能存储数组。有任何想法吗 ? 问题答案: 例如选一个 要不就

  • 问题内容: 我正在开发一个PHP应用程序,该程序需要将各种设置存储在数据库中。客户经常询问是否可以添加或更改/删除某些内容,这已导致表格设计出现问题。基本上,我有很多布尔字段,它们仅指示是否为特定记录启用了各种设置。 为了避免使表格混乱,我考虑将数据存储为序列化数组。我已经读过,这被认为是不好的做法,但是我认为这是使用这种方法的合理案例。 有什么真正的理由避免这样做吗? 任何建议表示赞赏。 谢谢。

  • 问题内容: 我有一个需要保存的JSON数组。我当时正在考虑对其进行序列化,但是最好将它另存为SharedPreferences中的字符串,然后在需要读入它时对其进行重建? 问题答案: Java中的JSON对象无法立即实现可序列化。我已经看到其他人扩展了该类以允许这样做,但是对于您的情况,我只建议将JSON对象存储为字符串并使用其toString()函数。我已经成功了。 并找回它: http://d

  • 我不知道它是否可行,但我可以在数组中存储方法或函数吗?我现在知道多维数组,并使用它来存储我想要的许多数组。我现在想做的是将我创建的方法或函数存储在某个类中。因为我想将所有函数存储到某个类中,如果我想使用循环,就调用它。并使我的编码更简洁易懂。例子: 像那样?可能吗?

  • 问题内容: 我想知道是否可以在Django模型中存储数组? 我问这个问题是因为我需要在一个字段中存储一个数组(例如[1,2,3]),然后能够搜索特定的数组并与之匹配,或者通过它的可能组合来进行匹配。 我当时正在考虑将该数组存储为s中的字符串,然后在需要搜索内容时,将值(通过过滤其他模型获得)与’[‘,’]’和’,’连接在一起,然后使用带有生成字符串。问题在于,我将必须生成每种可能的组合,然后逐个过