是否可以在全局范围内以编程方式注册/创建 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/