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’]);