1

複数のメソッドが同じクラスに存在するかどうかを確認する方法はありますか?

class A{
    function method_a(){}
    function method_b(){}
}

if ( (int)method_exists(new A(), 'a', 'b') ){
    echo "Method a & b exist";
}
4

4 に答える 4

2

そのような機能が存在するとは思わないでください。ただし、 get_class_methodsを試して、クラス メソッドの配列と独自のメソッドを比較できます。たとえば、次のようになります。

$tested_methods = array('a', 'b', 'c');
if (sizeof($tested_methods) == sizeof(array_intersect($tested_methods, get_class_methods("class_name"))))
    echo 'Methods', implode(', ', $tested_methods), ' exist in class';
于 2013-06-01T18:28:17.207 に答える
1

各方法を個別に確認する必要があります。

$a = new A();

if(method_exists($a, 'method_a'))...
if(method_exists($a, 'method_b'))...

1 回の関数呼び出しで複数のメソッドをチェックすることはできません

于 2013-06-01T18:26:41.987 に答える