1

PHP クラスを変数として記述して動的に作成できるかどうかを知りたいです。

すなわち

class $vaiable {

  public $foo2,
         $foo3,
         $foo4;


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

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

}
4

2 に答える 2

3

eval()これは、変数のコンテンツが厳密に制御されている、つまり任意のユーザー入力がなく、できればホワイトリストと照合されているなどの条件で、私がこれまでに使用し、他の人に使用を許可した唯一のものです。

例えば:

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

        // ...etc
    }');
?>
于 2013-05-08T22:29:11.593 に答える
-1

クラス名がすぐにわからないクラスの新しいインスタンスを作成しようとしていますか? もしそうなら、これは PHP で有効です:

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

$className = "SomeClass";

$instance = new $className();

$instance->printSomething();
于 2013-05-08T22:29:00.350 に答える