1

ABCの3つのクラスがあります。クラスAでは、A.php:

class A
{
    function __Contruct()
    {
          //do something
    }
}

クラスBでは、B.php:

class B extends A
{
    function __Contruct()
    {
         //do something
    }
}

クラスCの場合:

class C
{
    function __Contruct()
    {
         include(A.php);
         $this->A = new A;
         include(B.php);
         $this->B = new B;
    }
    function _load()
    {
         //load class $X;
    }
}

名前がvariable:$ Xの値であるクラスを、クラスBのnewという単語なしでクラスにロードする必要があります。

この方法でそれを行うことはできますか:$this->classname->functionname();//classname is value of $XファイルB.phpで。

4

2 に答える 2

0

私はあなたが欲しいものは次のとおりだと思います:

$var = new $X;

クラスのインスタンスを作成し$X

$X::functionname()

クラスのメソッドを呼び出します$X

アップデート:

$ this-> classnameがクラスの名前を返す場合、おそらく必要なのは次のとおりです。

($this->classname)::functionname();
于 2012-08-26T05:04:04.863 に答える
0

クラス B をクラス A で拡張したのに、なぜクラス C をクラス B で拡張しなかったのですか? 次に、クラス A とクラス B のすべてのプロパティとメソッドにアクセスできます。

の必要はありません

$this->classname->functionname();

または、次のようにメソッドまたはプロパティにアクセスできます。

A::functionname();
B::functionname();
C::functionname();
于 2012-08-25T08:49:41.407 に答える