0
use my\Project\FooClass;

$obj = new FooClass(); // ok
$name = 'FooClass';
$obj2 = new $name(); // throws an error that the class wasn't found

タイトルと例は私の質問を十分に説明していると思いますが、なぜこれがエラーをスローするのですか?どうすればこれに対処できますか?

4

3 に答える 3

0

これが機能しない理由を説明できません。しかし、それに対処する方法については:

$name = 'FooClass';
$name = "my\\Project\\FooClass\\" . $name; // prepend namespace
$obj2 = new $name();
于 2013-05-28T19:21:43.933 に答える
0

試す:

$obj2 = new $name;

括弧を削除します

または:

$obj2 = new {$name}();
于 2013-05-28T19:15:50.577 に答える