9

ユニットテストを書いているいくつかのクラスがあり、その中にエコーがあります。この出力と思考を抑制しob_start()たいob_clean()のですが、効果がありません。

public function testSomething (){
    ob_start();
    $class = new MyClass();
    $class->method();
    ob_clean();
}

ob_start(false, 0, true);やなどのバリエーションも試しましob_end_clean()たが、役に立ちませんでした。

私は何が欠けていますか?

4

3 に答える 3

2

あなたはこのようなものが欲しいかもしれません

<?php
public function testSomething (){
    ob_start();
    ob_implicit_flush(false); // turn off implicit flush

// Make your output below
    $class = new MyClass();
    $class->method();
// End of output

// store output into variable:
    $output = ob_get_contents();
}
?>
于 2011-03-28T15:27:57.853 に答える
0

PHP iniでimplicit_flushを設定していますか?trueこれにより、出力ブロックごとに自動的にフラッシュするように出力レイヤーに指示するようにPHPに指示するため、表示されている動作が発生する可能性があります。これは、print()またはecho()を呼び出すたびに、およびHTMLブロックごとにPHP関数flush()を呼び出すのと同じです。

于 2011-03-28T15:29:25.920 に答える