Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从字符串创建对象?_Php - Fatal编程技术网

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()
,它会工作的。但这并不完美(