停止父函数回显

时间:2013-03-31 10:00:53

标签: php oop extending-classes

让我们说在PHP中你有一个类Parent:

<?php
class Parent {

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

}

你有一个班级孩子:

<?php
class Child extends Parent{

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

        echo 'Hello from child';
    }

}

现在让我说我想在Child speak()函数中输出$ output的内容,有没有办法捕获parent :: speak()的输出;并停止此函数回显?知道你不能改变'Parent'类。

1 个答案:

答案 0 :(得分:1)

您可以使用PHP输出缓冲功能:     

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

    echo 'Hello from child';
  }

}

有关详细信息,请参阅PHP.net manual

祝你好运;)