2

phpでジェネリッククラス(ただし同じメソッド)を参照するジェネリックメソッドを作成したいと思います。

class A {

    public static function Dox(){
    }

}

class B {

    public static function Dox(){
    }

}

class C{

    public static function Include($class){
    $result = $class::Dox(); //instead of 2 methods => A::Dox and B::Dox
    }

}

エラーが発生します。助言がありますか?

4

3 に答える 3

4

includeキーワードです。メソッドの名前をfoo()、bar()、またはキーワード以外の名前に変更します。

例えば

<?php
class A {
    public static function Dox() { return 'A::Dox'; }
}

class B {
    public static function Dox() { return 'B::Dox'; }
}

class C {
    public static function foo($class) {
        $result = $class::Dox();
        echo 'result: ', $result, "\n";
    }
}

foreach( array('A','B') as $c ) {
    C::foo($c);
}

プリント

result: A::Dox
result: B::Dox
于 2012-08-29T09:21:44.830 に答える
0

動作しますかcall_user_func

class A {
    public static function Dox() {
    }
}

class B {
    public static function Dox() {
    }
}

class C {
    public static function Include($class) {
        $result = call_user_func(array($class, "Dox"));
    }
}
于 2012-08-29T09:19:13.937 に答える
0

キーワード「特定のキーワード」を含めます。

それを試してみてください:

public static function IncludeXXX(){...}
于 2012-08-29T09:52:30.263 に答える