Вы можете использовать method_exists
, чтобы увидеть, есть ли у объекта метод с заданным именем. Однако это не позволяет вам проверить, какие аргументы принимает метод. Поскольку вы определяете абстрактный класс, просто сделайте нужный метод абстрактным методом.
abstract class Test {
public function __construct() {
$this->init();
}
abstract protected function init();
}
Только будьте осторожны, вы не вызываете init
более одного раза, и дочерние классы вызывают конструкторы своих родителей.