Php 如何从字符串创建对象?
我尝试了下面的代码:Php 如何从字符串创建对象?,php,Php,我尝试了下面的代码: $dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");"; $obj = eval($dyn); 它可以编译,但为空 如何在PHP DynamicCaly中实例化对象?如果您真的想使用eval-如果您是PHP新手,您有哪些机会不应该使用它;)-你会做一些更像 $class = 'ClassName'; $obj = new $class($arg1, $arg2); $dyn = "new ". $c
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
$obj = eval($dyn);
它可以编译,但为空
如何在PHP DynamicCaly中实例化对象?如果您真的想使用eval
-如果您是PHP新手,您有哪些机会不应该使用它;)-你会做一些更像
$class = 'ClassName';
$obj = new $class($arg1, $arg2);
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
eval("\$obj = $dyn");
你到底想完成什么?eval会起作用,但这可能不是一个好主意
您可能需要为对象实现一个数组,该对象使用一个字符串定义要加载的类,并为构造函数参数实现一个可选数组仅仅因为有人开始学习一种语言,并不一定意味着他们没有编程经验。。但对新开发人员来说,这是一个合理的警告:)=如果静态属性中的类名是什么
class From{static$toCreate='ClassName';}
。。。如果不是的话,那么在实例化之前您只需将其分配给var。我们有来自{static$toCreate='ClassName';公共静态函数some(){};}的类。我们需要调用静态方法some
,它的语法应该类似于Form::$toCreate::some()
。当然,这是行不通的。但是我们可以喜欢$dynName=Form::$toCreate$dynName::some()
,它会工作的。但这并不完美(