Есть ли способ переопределить функцию внутри класса, не затрагивая классное кодирование?Функция переопределения PHP внутри класса извне
У нас есть класс, скажем, он находится в foo.php:
class WPSEO_Frontend {
public function head() {
echo '<!--/', $this->head_product_name(), ". -->\n\n";
return;
}
}
Так что без изменения этого класса выше, есть способ, чтобы удалить эту echo
извне класса, как (я знаю, что ниже пример не будет работать):
bar.php
class WPSEO_Frontend overrides head {
echo '';
return;
}
У вас нет возможности продлить класс для переопределения общедоступного метода, например, если вы не можете каким-либо образом изменить вызывающий код для использования другого класса? –
@MichaelBerkowski Извините, я не понимаю вашего вопроса – Mitch
Что я имею в виду, нормальный способ справиться с этим в PHP (и многих других языках) - это создать класс типа 'класс WPSEO_Frontend_Subclass, который расширяет WPSEO_Frontend {}' и просто переопределяет метод там. Но если у вас нет доступа к коду, который вызывает 'new WPSEO_Frontend()', чтобы иметь возможность подставить ваш подкласс, это не поможет. –