获取抽象函数

时间:2017-01-30 22:25:21

标签: php abstract-class base-class

我有一个抽象方法'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 个答案:

答案 0 :(得分: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;
        }
    }
}