2017-07-16 107 views
0

显然存在可用性和可读性差异,但是下面的方法是否有任何优点或缺点 - 特别是性能方面?

function method1() { 
    ob_start(); 
    ?><div>some html</div><?php 
    echo ob_get_clean(); 
} 

function method2() { 
    ?><div>some html</div><?php 
} 

function method3() { 
    echo '<div>some html</div>'; 
} 

特别method1method2之间,并添加ob_start()导致性能的下降?输出HTML时甚至需要使用它吗?

回答

1

ob_start()的“典型”用法是缓冲输出,以便您仍然可以使用像setcookie,header等其他功能,而不必担心“我输出了什么东西吗?”,它可以工作。老实说,我认为这应该是默认行为,但那只是我。

ob_start()然而,当你给它一个回调时获得实际的权力。我个人有这样的:

ob_start(function($html) { 
    return preg_replace('/\r?\n\t*/','',$html); 
}); 

这剔除从HTML源换行(以及随后的选项卡)将其发送给浏览器,从而缩小文件之前。

+0

很酷,我一直在试验ob_start,并且它维护了换行符标签,而其他所有的东西有时候都很方便,有时会导致难看的代码,我一直在寻找解决方法,谢谢你的例子。我仍然想知道它的性能影响 –