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

使用变量定义PHP函数

高皓
2023-03-14
问题内容

我想使用变量来动态命名一些函数,如下所示:

$thing = 'some_function';

function $thing() {
    echo 'hi!';
}

我知道我可以使用这样的变量来 调用 函数:

$something = 'function_exists';

if( $something('print_r') ) {
    echo 'Yep';
}

但是最重​​要的例子对我不起作用。

有任何想法吗?

我正在使用具有模块的系统。每个模块都是单个php脚本,可以从特定文件夹中添加或删除。

每个模块都需要一个新功能来对其进行初始化。我正在寻找文件名,然后想循环并创建一系列功能,每个模块一个。

我使用的是现有系统,无法重写模块处理。

替代方法是只写出所有init函数并对其进行硬编码,但是随着列表的增加,代码也将增加-如果模块被删除,则会引发错误。


问题答案:

你能做的是

$thing = 'some_function';
$$thing = function() {
   echo 'hi';
};
$some_function();

在php
<5.3中,您必须使用create_function而不是匿名函数:

// Use this in < 5.3
$thing = 'some_function';
$$thing = create_function('',
   'echo "hi";'
);
$some_function();

话虽这么说,用动态名称定义函数不是一个好主意。而是创建一个您要调用的函数数组,或使用多态性。



 类似资料:
  • 问题内容: 我是PHP的新手,所以我的功能有一个小问题。我有这行代码: 无论如何,当我尝试这段代码时,我总是收到一条错误消息,指出第11行(代码的粗体部分)有错误,并且没有回显任何变量。我猜它给了我这个错误,因为我的变量没有在函数内部定义,但是我需要在函数外部定义它,所以有办法吗? 问题答案: 这是因为您正在函数内部使用变量(仅存在于全局范围内)。 有关更多信息,请参见PHP手册页上的变量范围。

  • 问题内容: 假设我在网站的各个页面上使用了三种单独的配色方案。每种颜色都有浅,中和深三种色调,并且配色方案由体内的类别定义。假定默认为“红色”配色方案。像这样: 颜色定义 : 基本默认样式示例 不同的配色方案样式示例 我想使用变量,这样我就不必为每种方案重新编写所有的颜色变化,这样我就可以编写如下内容: …但是我不太了解如何完成这项工作。帮帮我…? 问题答案: 在选择器和参数混合中使用插值和转义,

  • 本文向大家介绍php定义参数数量可变的函数用法实例,包括了php定义参数数量可变的函数用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php定义参数数量可变的函数用法。分享给大家供大家参考。具体分析如下: php中的的函数参数可以不固定,甚至不用定义参数,在函数内部使用func_get_args()函数获得参数列表,调用时可以为函数指定任意参数,非常方便 希望本文所述对大家的php

  • 本文向大家介绍PHP 用户定义的全局变量,包括了PHP 用户定义的全局变量的使用技巧和注意事项,需要的朋友参考一下 示例 任何函数或类之外的范围都是全局范围。当PHP脚本包含另一个脚本(使用include或require)时,范围保持不变。如果脚本包含在任何函数或类的外部,则其全局变量包含在同一全局范围内,但是如果脚本包含在函数内部,则所包含脚本中的变量位于函数的范围内。 在函数或类方法的范围内,

  • 问题内容: function parts($part) { $structure = ‘http://’ . $site_url . ‘content/’; echo($tructure . $part . ‘.php’); } 该函数使用在页面顶部定义的变量,但是此变量未传递到该函数中。 我们如何使它返回到函数中? 问题答案: 添加第二个参数 您需要将其他参数传递给函数: 如果关闭 如果您希望使

  • 问题内容: 有人可以解释一下使用之间的区别吗 和 也许彼此之间有好处? 我到处都使用变量,甚至在每个页面都包含的配置类型文件中,我仍然使用变量,因为我不明白为什么要使用define方法。 问题答案: DEFINE使常量,并且常量是全局的,可以在任何地方使用。它们也不能重新定义,可以是哪个变量。 我通常将DEFINE用于Configs,因为事后没有人可以将其弄乱,而且我可以在没有全局关联的情况下在任