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 回答