2

我想在 PHP 中的一个字符串中创建和执行一个闭包,它不喜欢我这样做的方式。

此代码不起作用...

echo ( 'Hello, ' . (function($s) { return $s; })('World!') );

然而,这是完全有效的,并且按预期工作......

$f = (function($s) { return $s; });
echo ( 'Hello, ' . $f('World!') );

为什么第一个不起作用,有没有办法在一行中做到这一点(不是因为我认为它有效,因为我确定它不是)?

4

2 回答 2

2

您可能想看看PHP5.3 中的自执行函数?.

本质上,直到(也许)在 5.4 中的某个时候,才使用“(...)()”进行自我调用。

https://wiki.php.net/rfc/fcallfcall

于 2012-08-27T20:32:19.397 回答
0

我相信这只能在 PHP 5.4 中实现:http: //php.net/manual/en/migration54.new-features.php

于 2012-08-27T20:31:48.843 回答