$map_class_name = __NAMESPACE__.'\\'.$map_class_name; $map = new $map_class_name;
$map = new (__NAMESPACE__.'\\'.$map_class_name);
以上给出
语法错误,意外的“(”
new 用字符串或表达式。
new
但是你可以用
$map = new $map_class_name;
因为您使用来自当前命名空间的类( __NAMESPACE__
__NAMESPACE__
$map = (new \ReflectionClass(__NAMESPACE__."\\$map_class_name"))->newInstance();
另一种方法是不要越界,但我想这没有抓住重点。
生命也是可能的
$map = (function($n){return new $n;})(__NAMESPACE__."\\$map_class_name");