Остановить эхо родительской функции
Допустим, в 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';
}
}
Теперь предположим, что я хочу, чтобы содержимое $output в функции Child говорило (), есть ли способ перехватить выходные данные parent::speak(); и остановить эту функцию от эха? Зная, что вы не можете изменить класс "Родитель".
1 ответ
Решение
Вы можете использовать функцию буферизации вывода PHP:
public function speak()
{
ob_start();
parent::speak();
$parent_output = ob_get_contents();
ob_end_clean();
echo 'Hello from child';
}
}
Для получения дополнительной информации см. Руководство по PHP.net.
Удачи;)