1

我有三个班级:ABC。在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;
    }
}

我需要加载一个名称是变量值的类:$X 到类B 中没有单词new的类。

我可以这样做吗:$this->classname->functionname();//classname is value of $X在文件 B.php 中。

4

2 回答 2

0

你用 A 类扩展 B 类,那你为什么不用 B 类扩展 C 类呢?然后您可以访问 A 类和 B 类的所有属性和方法。

不需要

$this->classname->functionname();

或者您可以按如下方式访问方法或属性,

A::functionname();
B::functionname();
C::functionname();
于 2012-08-25T08:49:41.407 回答
0

我想你想要的是:

$var = new $X;

创建一个类的实例$X

$X::functionname()

调用类的方法$X

更新:

如果 $this->classname 返回一个类的名称,也许你需要的是:

($this->classname)::functionname();
于 2012-08-26T05:04:04.863 回答