Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的一行回音_Php_Echo - Fatal编程技术网

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>";