2010年6月15日火曜日

PHPで ob_start()後に exitするとどうなるか

PHPでob_start()でコールバック関数を指定した場合、スクリプトを終了した後にコールバック関数が呼ばれる。

ではスクリプトの途中でexitしたらどうなるかというと、exit後にコールバック関数が呼ばれた。

<?php
function callback($buf) {
    return $buf . ' callback'; //呼ばれる
}

ob_start('callback');

echo 'foo';

exit;

echo 'bar'; //呼ばれない

// => foo callback


コールバック関数を指定せずに、exit後にob_get_clean()等でバッファを処理しようとした場合は、(当然ながら)exit後の処理は実行されない。
<?php
ob_start();

echo 'foo';

exit;

echo ob_get_clean();

echo 'bar'; //呼ばれない

// => foo

0 件のコメント:

ブログ アーカイブ

tags