ReflectionClass::hasMethod

メソッドが定義されているかどうかを調べる

説明

public bool ReflectionClass::hasMethod(string $name)

そのクラスで特定のメソッドが定義されているかどうかを調べます。

パラメータ

name

調べたいメソッドの名前。

戻り値

メソッドが定義されている場合に true、それ以外の場合に false を返します。

例1 ReflectionClass::hasMethod の例

<?php
Class C {
    public function publicFoo() {
        return true;
    }

    protected function protectedFoo() {
        return true;
    }

    private function privateFoo() {
        return true;
    }

    static function staticFoo() {
        return true;
    }
}

$rc = new ReflectionClass("C");

var_dump($rc->hasMethod('publicFoo'));

var_dump($rc->hasMethod('protectedFoo'));

var_dump($rc->hasMethod('privateFoo'));

var_dump($rc->hasMethod('staticFoo'));

// C には bar メソッドがありません 
var_dump($rc->hasMethod('bar'));

// メソッド名は大文字小文字を区別しません
var_dump($rc->hasMethod('PUBLICfOO'));
?>

上の例の出力は以下となります。

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

参考

  • ReflectionClass::hasConstant
  • ReflectionClass::hasProperty