0

クラスの名前を含む文字列があります。このクラスは抽象クラスですが、子クラスのインスタンスを返す public static メソッドがあります。

abstract class MyClass {

   public static function instance() {
      return self::$inst;
   }

}

ここで、このメソッドを何らかの方法で呼び出す必要があります。与えられるのは、文字列としてのクラスの名前だけです。$class = new $className()MyClass は抽象的であるため、何とも言えません。何か案は?

4

3 に答える 3

0

文字列にクラス名があり、そのクラスの抽象メソッドを呼び出したい場合は、次のようにすることができます。

$className = 'MyClass';
$instance = $className::instance();
于 2013-09-13T09:13:09.297 に答える
0

遅れていることはわかっていますが、誰かがまだ見ている場合は、次のことを行ってください。

$method = "myFunction";
$class =  "myClass";
$result = $class::$method();

したがって、前述の場合に使用します

$method = "instance";
$class = "myClass"
$instance = $class::$method();

しかし、あなたの場合、問題はインスタンス関数にあるようです。抽象クラスのインスタンスを返そうとしていると思いますが、これは不可能です!

于 2015-08-28T08:55:08.833 に答える