0

我在函数中有一个闭包,但是当它被调用时,返回值不是我期望的。

public function test($name, $content)
{
     $test = "\t<div id=\"{$name}\">{$content()}</div>\n";
     return $test;
}

而不是返回这个......

<div id="name">content</div>

它反而返回...

content
<div id="name"></div>

如果您知道如何解决此问题以正确显示,那么我将是一个非常快乐的人,在此先感谢您。

4

2 回答 2

2

您尚未显示该$content()功能,但从症状来看,我认为它会打印内容而不是返回内容。发生的情况是该test()函数调用$content()显示内容但不返回任何内容的函数,然后test()返回并打印返回值。

要修复它,只需$content()返回内容而不是打印它。

于 2013-09-20T20:28:59.457 回答
-1

让闭包执行并捕获返回的内容。然后插入结果:

public function test($name, $content)
{
     $insert = $content();
     $test = "\t<div id=\"{$name}\">{$insert}</div>\n";
     return $test;
}
于 2013-09-20T20:23:14.803 回答