想知道我是否可以通过将其声明为变量来动态创建PHP类。
即
class $vaiable {
public $foo2,
$foo3,
$foo4;
function __construct(array $data = null) {
if( empty($data) )
return;
foreach( $data as $field => $value ) {
$this->$field = $value;
}
}
}
答案 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();