例子如下: $className = 'Test'; 正常 new \Require\allClass\Test(); 當然OK,但是 new \Require\allClass\$className(); 出錯,請問如何才能實現這種方式如
當我們new一個類名的時候,如果類型是字符串就以的字符串中的命名空間為准,如果new的是一個變量,無論變量內容前有沒有斜杠,PHP都會認為是根目錄命名空間 既然變量表示的是根目錄命名空間,根目錄命名空間前再加入目錄則會報錯 $className = ' \Require\allClass\Test'; new $className; $className = ' Require\allClass\Test'; new $className; 以上是一個意思,雖然第二個開頭沒有斜杠,但是也會認為命名空間是根目錄的
$obj = 'lvFactory\\' . $name; $obj = new $obj();
這樣就可以new了。