0

PHP でクラス Parent があるとします。

<?php
class Parent {

    public function speak()
    {
        // Do bunch of stuff
        $output = outcomeOfAbove();
        echo $output;
    }

}

そして、あなたはクラス Child を持っています:

<?php
class Child extends Parent{

    public function speak()
    {
        parent::speak();

        echo 'Hello from child';
    }

}

ここで、Child speak() 関数で $output の内容が必要だとしましょう。parent::speak(); の出力をキャプチャする方法はありますか? この関数のエコーを停止しますか? 「親」クラスを変更できないことを知っています。

4

1 に答える 1

1

PHP 出力バッファリング機能を使用できます。

  public function speak()
  {
    ob_start();
    parent::speak();
    $parent_output = ob_get_contents();
    ob_end_clean();

    echo 'Hello from child';
  }

}

詳細については、PHP.net マニュアルを参照してください。

幸運を ;)

于 2013-03-31T10:15:04.493 に答える