SO网友:Md. Zubaer Ahammed
如果您编写大量HTML,那么通过串联将所有内容传递给变量会非常无聊和不方便。在这种情况下,我建议使用“对象缓冲”。所以,你可以写ob_start() 函数,从中可以开始缓冲并使用$content = ob_get_clean()
让我举个例子把事情弄清楚。
正如WordPress所说,如果您正在编写shortcode. 因此,以下代码不应在出现短代码的情况下编写。
<div id="my-wrapper">
<?php
$name = \'John Doe\';
echo \'Hello \'.$name;
?>
</div>
要解决出现的问题(内容显示在标题之前),可以将everying设置为如下变量:
<?php
$content =\'<div id="my-wrapper">\';
$name = \'John Doe\';
$content .= \'Hello \'.$name;
echo \'</div>\';
return $content;
?>
正如您可以想象的那样,以这种方式编写大量代码将非常烦人。在这种情况下,我将使用php对象缓冲,如下所示:
<?php ob_start();?>
<!-- start your code here -->
<div id="my-wrapper">
<?php
$name = \'John Doe\';
echo \'Hello \'.$name;
?>
</div>
<!-- code finished -->
<?php
$content = ob_get_clean();
return $content;
?>
现在不需要更改代码。把一切都放在两者之间
和
这种方法在编写大量代码的情况下非常有用,还可以增强可见性。
Note: What ob_start() does is, it starts saving everything after it (instead of letting it being outputted). On the otherhand, ob_get_clean() stops saving things and return the saved contents.