PHP中的一行回音
我想更改我的原始代码PHP中的一行回音,php,echo,Php,Echo,我想更改我的原始代码 echo "<p><strong>" . __('Area:', 'honegumi') . "</strong> " . number_format($productarea) . " m² ("; echo metersToFeetInches($productarea) . " ft²)" . "</p>"; 但在第二种情况下,metersToFeetInches($productarea)出现了一些奇怪的断线 生成的
echo "<p><strong>" . __('Area:', 'honegumi') . "</strong> " . number_format($productarea) . " m² (";
echo metersToFeetInches($productarea) . " ft²)" . "</p>";
但在第二种情况下,metersToFeetInches($productarea)出现了一些奇怪的断线
生成的HTML:
24,757
<p>
<strong>Area:</strong>
2,300 m² ( ft²)
</p>
24757
区域:
2300平方米(平方英尺)
输出:
24,757
Area:
2,300 m² ( ft²)
24,757
区域:
2300平方米(平方英尺)
我怎样才能解决它?是否有任何文档可以让我自己在将来学习如何做?我很确定我知道这里发生了什么,您的函数
metersToFeetInches
是回送一个值,而不是返回它
function metersToFeetInches() {
echo 'OUTPUT';
}
echo 'FIRST '.metersToFeetInches().' LAST';
// Outputs: OUTPUTFIRST LAST
回声计tofeetinches()
实际上是冗余的
这是因为函数在您构建的字符串实际输出之前运行。请注意,您发布的两个示例都有这个问题。将函数改为返回值。之后,在您使用过的任何地方:
echo 'Something';
metersToFeetInches();
echo 'Something Else';
您必须使用回音:
echo 'Something';
echo metersToFeetInches();
echo 'Something Else';
函数应该总是返回一个值。也许是吸取了教训
如果您确实处于困境,无法更改函数,则必须求助于:
ob_start();
米到英尺($productarea);
$metersToFeetInches=ob_get_clean();
回声“”__(“区域:”,“honegumi”)。“”。数字格式($productarea)。“m²(.$metersToFeetInches.“ft²)”。“”;
…这样做很愚蠢。发布生成的HTML。@WesleyMurch:这可能是一个本地化功能。IIRC,Wordpress使用一个具有类似名称的函数。wk()是gettext函数的别名@WesleyMurch@MrinmoyGhoshal:是的,很有趣,谢谢。我知道。
也是Kohana和CakePHP的一部分:谢谢Wesley!问题是,正如您所说,函数正在回响,而不是返回。现在就像一个符咒!
echo 'Something';
echo metersToFeetInches();
echo 'Something Else';
ob_start();
metersToFeetInches($productarea);
$metersToFeetInches = ob_get_clean();
echo "<p><strong>" . __('Area:', 'honegumi') . "</strong> " . number_format($productarea) . " m² (" . $metersToFeetInches . " ft²)" . "</p>";