在PHP中执行纯匿名函数

在PHP中执行纯匿名函数,php,closures,anonymous-function,Php,Closures,Anonymous Function,在PHP中执行匿名函数的建议方法是什么,类似于Javascript如何提供这种可能性 Javascript: (function(){ console.log('Hello!'); })(); 在PHP中尝试同样的操作会导致参数在括号中出现语法错误。我通过“错误使用”call\u user\u func()找到了解决此问题的方法: PHP: 但是(更新:德文版本的文档)明确表示调用_user_func()的第一个参数应该是字符串。。。因此,我不确定我的解决方案是否正确(但目前确实如此) 这个解

在PHP中执行匿名函数的建议方法是什么,类似于Javascript如何提供这种可能性

Javascript:

(function(){ console.log('Hello!'); })();
在PHP中尝试同样的操作会导致参数在括号中出现语法错误。我通过“错误使用”call\u user\u func()找到了解决此问题的方法:

PHP:

但是(更新:德文版本的文档)明确表示调用_user_func()的第一个参数应该是字符串。。。因此,我不确定我的解决方案是否正确(但目前确实如此)

这个解决方案背后的目的——类似于在JavaScript中使用相同方法的原因——是不污染某些附加功能的全局名称空间。对于整个服务器上的所有脚本,此脚本都是自动前置的,应该隐藏在wrt全局命名空间和全局范围中。它并不意味着不可见——只是将符号保留在名称空间之外

但是PHP文档明确指出了 call\u user\u func()应为字符串

不,没有

mixed call\u user\u func(callable$callback[,mixed$parameter[,mixed$…])


第一个参数的类型是
可调用的
,因此您的代码完全有效:)

您的解决方案是合适的。
call\u user\u func
的第一个参数应该是a,一种包含闭包的类型。

Ah这让人大失所望:文档的德语版本不是最新的,仍然显示“string”作为类型。。。该死的。:-)
call_user_func(function(){ echo "Hello!"; });