php - 在 PHP 中以编程方式注册/创建命名函数

标签 php function custom-function

是否可以在全局范围内以编程方式注册/创建 PHP 中的命名函数?

这可以通过 create_function (在 PHP 7+ 之前)实现,现在可以通过匿名/lambda 函数实现,但是您要么让它们被调用,要么将它们分配给变量或对象属性,然后只需在末尾使用 () 调用它们即可。

如果无论如何都可以在不必分配给变量并使用 $functionName 访问的作用域中添加新的命名函数,我感兴趣的是什么呢?

我正在寻找的一些解决方案是:

create_named_function('fullname', function($firstname, $lastname) {
    return $firstname . ' ' . $lastname;
});

然后我可以像 fullname(params...) 一样访问它。

最佳答案

这里是带有eval的示例:

<?php

$functionName = 'foo';
$f = '
  function ' . $functionName . '($a) {
    var_dump($a);
  }
';
// Finger crossed!)))
eval($f);
// Now you have function "foo" in your global scope!)
$functionName('bar');
// It will print
// string(3) "bar"

但是你必须有清晰的愿景,你在这里真正做什么......因为这是一个非常棘手的地方......

关于php - 在 PHP 中以编程方式注册/创建命名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47458231/

相关文章:

php - http_build_query 同名参数

r - 绘制函数数据

android - 为什么要使用 onFreeze()?

PHP 在 HTML 表格中的相同行上回显

PHP - 值得在变量名中包含数据类型吗?

javascript - 如何返回对 JSONP 请求的即时响应并在之后继续处理

javascript - Google 电子表格脚本编辑器中的 IEFE(立即执行函数表达式)

javascript - 在 Apps 脚本中,如何在自定义函数中包含可选参数

Python - 根据其他数据帧列中满足的条件填充 PANDAS 数据帧列

SQL查询中的PHP日期时间格式