Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop - Fatal编程技术网

Php 从变量创建实例

Php 从变量创建实例,php,oop,Php,Oop,我想这样做: private static function parserLib() { return USE_XML ? 'XmlParser' : 'IdfParser'; } static function create($arr = []) { return new ${self::parserLib()}($arr); } 我试过这个: new ${'XmlParser'}($test); 不要工作 这项工作: $var = 'XmlParser'; new

我想这样做:

private static function parserLib() {
    return USE_XML ? 'XmlParser' : 'IdfParser';
}

static function create($arr = []) {
    return new ${self::parserLib()}($arr);
}
我试过这个:

 new ${'XmlParser'}($test);
不要工作

这项工作:

 $var = 'XmlParser';
 new $var($test);
为什么不能使用
{}
来使用从方法检索到的值

$var = 'XmlParser';
new $var($test);
您定义变量$var,并将其用于实例类

new ${'XmlParser'}($test);
${'XmlParser'}表示获取变量XmlParser的值,但您没有这样的变量

您尝试获取未定义变量的值,结果得到这样的错误“PHP注意:未定义变量:XmlParser”

如果您定义变量XmlParser,它将起作用

class XmlParser {}
$XmlParser = 'XmlParser';
new ${'XmlParser'}($test);
另外,请阅读有关php的内容