在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}
,但没有成功。如果你不得不多次使用这个东西,以至于需要一个快捷方式,可能你的应用程序有问题。是的。但这仍然是自我修改代码,这是一个糟糕的开始。