【发布时间】:2012-11-19 14:10:58
【问题描述】:
在 PHP 中有时我会看到:
$html = <<<HTML
<p>Hello world</p>
HTML;
通常我会使用 ob_start() :
ob_start();
?>
<p>Hello world</p>
<?php
$html = ob_get_contents();
ob_clean();
你能告诉我这两种写入缓冲区的方式有什么区别以及它们的优点吗?
【问题讨论】:
-
我会说HEREDOCs显然更干净。它也不是“写入缓冲区的不同方式”。 HEREDOC 是一种引用字符串的方式。
ob_是一个,我敢说,在任何输出消失之前破解它。 -
同意 deceze,
ob_*函数的大多数使用都指向糟糕的设计。然后再次在控制器或模型中尖叫“视图层”。 -
@MikeB 它还尖叫着“Heeey 给我钱给另一个编码器!”
-
@deceze @MikeB this thread 指出
ob_*的使用在模板系统中很常见,HEREDOCS 无法工作。