在PHP中将变量设置为类

时间:2013-05-08 22:19:09

标签: php class variables

想知道我是否可以通过将其声明为变量来动态创建PHP类。

class $vaiable {

  public $foo2,
         $foo3,
         $foo4;


  function __construct(array $data = null) {
    if( empty($data) ) 
      return;

    foreach( $data as $field => $value ) {
      $this->$field = $value;
    }
  }

}

2 个答案:

答案 0 :(得分:3)

这是我曾经使用过的唯一一件事,并允许其他人使用eval(),前提是严格控制变量内容,即没有任意用户输入,最好是根据白名单进行检查,等等。

E.g:

<?php
    eval('class '.$variable.' {
        public $foo;
        private $bar;

        // ...etc
    }');
?>

答案 1 :(得分:-1)

您是否希望创建一个类的新实例,其中类名称不是立即知道的?如果是这样,这在PHP中有效:

class SomeClass
{
    public function printSomething()
    {
        echo "You did it!";
    }
}

$className = "SomeClass";

$instance = new $className();

$instance->printSomething();