2

PHP で文字列内にクロージャーを作成して実行したいのですが、そのやり方が気に入りません。

このコードは機能しません...

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

それでも、これは完全に有効であり、意図したとおりに機能します...

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

最初のものはなぜ機能しないのですか?1行でそれを行う方法はありますか(効率的だと思うからではなく、そうでないと確信しているからです)

4

2 に答える 2

2

PHP5.3 のSelf Executing functions をご覧になることをお勧めします。.

基本的に、(おそらく) 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 に答える