在PHP中使用动态变量创建新对象

在PHP中使用动态变量创建新对象,php,dynamic-variables,objectinstantiation,Php,Dynamic Variables,Objectinstantiation,我想用这个创建一个新对象 $procedure = new ${$s.'\\'.$p}; 它不起作用。为什么这不可能呢?你为什么不呢 $name = "$s\\$p"; $procedure = new $name; ? 另外,${$s.\\'.$p}表示一个变量,其变量名显然不好。如果您是,而且我认为您是,试图获得类似Namespace\Class的实例,那么您应该尝试下面的代码 我认为{}快捷方式只适用于这种语法${},它显然是指一个变量。所以你不能用它来实例化新的对象。我认为这是因为在

我想用这个创建一个新对象

$procedure = new ${$s.'\\'.$p};
它不起作用。为什么这不可能呢?

你为什么不呢

$name = "$s\\$p";
$procedure = new $name;
?

另外,
${$s.\\'.$p}
表示一个变量,其变量名显然不好。如果您是,而且我认为您是,试图获得类似
Namespace\Class
的实例,那么您应该尝试下面的代码


我认为
{}
快捷方式只适用于这种语法
${}
,它显然是指一个变量。所以你不能用它来实例化新的对象。

我认为这是因为在
{
@tereško之前有额外的
$
,这是一个@Michael No,“\”是无效的语法,至于“\\”它没有什么区别。@Michael,
“\”
也是转义字符。如果你用单斜杠,它将转义
"
,并将导致分析错误。@Michael,在这种情况下,这将是一种非常糟糕的做法……我试图假设无意的愚蠢错误,在故意的有害代码约定之前,我只是想理解。此外,第一个更紧凑。@x74x61,它有一个奇怪的行为,可能是因为n中的某个问题amespace。我也尝试了
新的{$s.\\'.$p}
,但没有成功。如果你不得不多次使用这个东西,以至于需要一个快捷方式,可能你的应用程序有问题。是的。但这仍然是自我修改代码,这是一个糟糕的开始。