Php 字符串中的内联闭包/匿名函数?

Php 字符串中的内联闭包/匿名函数?,php,closures,Php,Closures,我想在变量中返回一个动态字符串。是否有可能实现这样的目标: $str = 'Hi '. (function(){ return 'Jimmy'; }) ; p、 我需要的是询问,而不是替代解决方案。您必须在变量实例内执行闭包。不能有混合数据类型,它可以是闭包或字符串 PHP5+(感谢@input) 顺便说一句,PHP 7+中存在较短的版本 $str = 'Hi '. (function() { return 'Jimmy'; }) (); 上述输出为: 嗨,吉米 2020年更新回

我想在变量中返回一个动态字符串。是否有可能实现这样的目标:

$str =  'Hi  '. (function(){ return 'Jimmy'; }) ;  

p、 我需要的是询问,而不是替代解决方案。

您必须在变量实例内执行闭包。不能有混合数据类型,它可以是闭包或字符串

PHP5+(感谢@input)

顺便说一句,PHP 7+中存在较短的版本

$str =  'Hi  '. (function() { return 'Jimmy'; }) ();
上述输出为:

嗨,吉米

2020年更新回顾问题:


如果您想传递一个参数,并且出于某种原因,您仍然在使用PHP5.2,那么将函数包装在大括号中只意味着“首先执行此操作”。例如,
$foo=newfoo()$foo->doSomething()
可以缩短为
(new Foo())->doSomething()。在本例中,您将从
(function(){})
返回一个闭包,因此要执行它,您必须在闭包的末尾添加
()
。对于PHP5或更低版本,您可以使用
调用用户函数()
,但在几乎每次我询问有关闭包的问题时,都会很好地指出@omerowitz,第一条注释是“为什么您需要它”。求你了,别问这个,我已经厌倦了为我需要的理由辩护。
$str =  'Hi  '. (function() { return 'Jimmy'; }) ();
call_user_func_array(function($name) { return $name; }, [‘Jimmy’]);