2017-07-16 25 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,並且它維護了換行符標籤,而其他所有的東西有時候都很方便,有時會導致難看的代碼,我一直在尋找解決方法,謝謝你的例子。我仍然想知道它的性能影響 –

相關問題