Способ получения вывода абстрактной функции

У меня есть абстрактный класс с абстрактным методом run. Дочерние классы, расширяющие это, реализуют run и возвращают bool в качестве вывода.
Есть ли способ, которым я могу получить статус метода run (true / false) в абстрактном классе.

Я хочу это, поскольку я пытаюсь добавить немного статистики, например, сколько классов не удалось / передано выполнить метод run. У меня уже есть много классов, расширяющих это, и я не хочу ничего добавлять в них и получать эту статистику бесплатно.

abstract class parent {
// I need the status of the run method in here
public abstract function run();
}

class child extends parent {
public function run() {
if (implementation) {
return true;
} else {
return false;
}
}
}

Помощь приветствуется.

1

Решение

Определите неабстрактный метод в родительском объекте, который вызывает абстрактный метод и получает результат.

abstract class parent {
private $run_result;

public function run() {
$this->run_result = $this->run_internal();
}
abstract protected function run_internal();
}

class child extends parent {
protected function run_internal() {
if (implementation) {
return true;
} else {
return false;
}
}
}
1

Другие решения

Других решений пока нет …