通过字符串引用类变量

时间:2012-05-09 19:34:54

标签: php

这是一些伪代码代表我的代码,你不会理解范围。

Class Tester有私有变量,持有类。 Array保存var的基本名称。 函数栏尝试从string中构造变量,然后使用它。 如果无法做到这一点,我理解,但我只是构建一个变量名。

Class Tester{

     private $preClass1post = new TestClass1();

     private $preClass2post = new TestClass2();;

     private $preClass2post = new TestClass2();;

     public $classBasicNames = array('Class1','Class2','Class3');

     function Bar(){
          foreach($classBasicNames as $classBasicName){

             $fullClassName = 'PreText'.classBasicName.'PostText';

             $fullClassName->DoWork();
             //always throws object does not exist
          }

}

}


                    //actual code for context
            $mapperName = 'mapper'.$entityName.'Stat';
            echo $mapperName;
            $dbos = $this->{$mapperName}->fetchAll($options);

1 个答案:

答案 0 :(得分:2)

首先,您似乎在调用对象上的方法 - 即使您评估字符串以获取类,您仍然需要实例化该对象。

你可以这样做:

$class = 'PreText'.classBasicName.'PostText';
$object = new $class();
$object->DoWork();

请参阅示例3 here,或访问相关的discussion

<强>更新

如果知道变量名称,请使用$$fullClassName->doWork()