したがって、method_exists()
ではメソッドが存在するかどうかを確認するオブジェクトが必要です。しかし、同じクラスの中からメソッドが存在するかどうかを知りたい。メソッドが同じクラスに存在するかどうかをチェック
私はいくつかの情報を処理し、その情報をさらに処理する方法を実行するアクションを受け取ることができるメソッドを持っています。メソッドを呼び出す前にメソッドが存在するかどうかを確認したい。どうすれば達成できますか?
例:
class Foo{
public function bar($info, $action = null){
//Process Info
$this->$action();
}
}
以下の回答は問題ありません。追加の発言:メソッドが存在するかどうかを知る必要がありますか?このような状況は、親クラスから継承したメソッドがある場合、または現在のクラスが継承しているものが不明な場合に発生します。どちらの場合も、インタフェースまたは抽象メソッド定義を使用して処理できます。これは、より透過的で、ランタイムからコンパイル時にエラーを移動させるので、望ましいものです。 – arkascha
公開されている他のメソッドをさらに処理して処理したデータを返すので、最初のメソッドは返されません。処理する必要があり、何も返す必要がないデータを受け取ることができるからです。しかし、必要に応じて他のメソッドをfisrtメソッドから呼び出すのは時間が節約されると思っていましたが、それでもそれらを別々に呼び出すことは可能です。 – Rafael
しかし、クラスそのものの中に、メソッドが存在するかどうかが不明な理由は何ですか?私はそれがクラスで宣言されているか実装されているか、そうではないということです。どのように、なぜそれが実行時に変更されるべきですか?私は方法が存在するかどうかを正確に知っていると言いたい。 – arkascha