私が探しているものが名前を持っているかどうかは分かりません。検索するのは少し難しかったので、私が尋ねていることが以前ここですでに答えられていれば謝ります。PHPでメソッドを呼び出すと、呼び出された後に自動的にコードが実行されます。可能?
私は抽象クラスを持っていますが、もちろんそれを拡張する他の多くのクラスがあります。
抽象クラスの抽象メソッドはrun()
となり、すべての拡張クラスがこのメソッドを定義します。
私の問題は、run()
メソッドが呼び出された後にいくつかの共通コードを呼び出すことですが、これを行うより良い方法があるかどうかを知りたいと思っています。
もちろん、それぞれの拡張クラスのすべての拡張クラスのrun()
メソッドに私の共通コードを貼り付けることもできますが、それを行うと、それ以降は簡単に変更することができます。
また、親クラスのメソッドに共通コードを配置してから、拡張クラスのrun()
メソッドから$this
というメソッドを呼び出すこともできます。
しかし、私の質問は、これを行うための良い方法がありますか、または$this
キーワードを使用するか、各クラスのコードに貼り付ける必要がありますか?ここで
は、私は私の現在の考えで何をしたいかの小さな例です。
abstract class Parent_Class {
public abstract function run();
protected function common_code() {
// Common code here
}
}
class Child_Class {
public function run() {
// Code here
// I want some common code to run after the run method has been called
$this->common_code(); // Is this the best way to do it?
}
}
それとも、何とかrun()
メソッドが自動的にcommon_code()
方法を実行するために呼び出されたときにというクラスを伝えることが可能です?
からそのメソッドを実行することができます - 私はこの質問を残しておきます...私はそれを考えていなかったと信じてすることはできません他の誰かがいろいろな提案をしているかどうかを少し見てみてください。しかしあなたの答えを読んだら、今はとても分かりそうです。 –