我想在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
}
}
我收到错误。 有什么建议吗?
答案 0 :(得分:4)
include
是keyword。将您的方法重命名为foo(),bar()或任何非关键字。
e.g。
<?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
答案 1 :(得分: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"));
}
}
答案 2 :(得分:0)
包含关键字“特定关键字”。
试一试:
public static function IncludeXXX(){...}