Я пробовал код ниже:
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");"; $obj = eval($dyn);
Он компилируется, но он равен нулю.
Как вы можете экземпляр объекта в PHP динамически?
$class = 'ClassName'; $obj = new $class($arg1, $arg2);
Если вы действительно хотите использовать eval
– какие шансы вы не должны, если вы новичок в PHP;) – вы бы сделали что-то большее …
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");"; eval("\$obj = $dyn");
Что вы на самом деле пытаетесь достичь? eval будет работать, но, вероятно, это не очень хорошая идея.
То, что вы можете сделать, это реализовать фабрику для ваших объектов, которые берут строку, определяющую, какой класс загружаться, и необязательный массив для параметров конструкторов