̃Gg[͂ĂȃubN}[Nɒlj

PHP :: ob_start() は入れ子にできる



出力のバッファリングを有効にする ob_start はネストさせることが可能。

  • 見やすいようにインデントを入れてます
<?php
 
ob_start(); // ---------------- hoge
 
    echo 'hoge'.PHP_EOL;
 
    ob_start(); // ------------ fuga
 
        echo 'fuga'.PHP_EOL;
 
        ob_start(); // -------- piyo
 
            echo 'piyo'.PHP_EOL;
 
        $piyo = ob_get_clean();
 
    $fuga = ob_get_clean();
 
$hoge = ob_get_clean();
 
echo $piyo;
echo $fuga;
echo $hoge;
 
?>

 ↓結果

piyo
fuga
hoge


こういう動作が可能な機構を stackable(スタッカブル) というらしい。









programming/php/etc/ob_start_stackable.txt