5

たとえば、クラスがあるとしましょう:

//no namespace
class User { 
    //...
}

そして、変数があります:

$model = 'User';

new User現在名前空間にいるときにをインスタンス化するにはどうすればよいですか?

new $model名前空間にいないときに機能します。しかし、私が名前空間にいて、名前空間にいない場合はどうなりますかUser

このようなものは機能しません:

namespace Admin;

class Foo {
    function fighter($model)
    {
        return new \$model;
        // syntax error, unexpected '$model'
    }
}

}
4

1 に答える 1

9

最初に完全な名前空間を変数に入れてから、それを使用します。

<?php    
$namespace = '\\'.$model;

return new $namespace
?>

同じトピック: PHP 名前空間に変数を含めることはできますか?

于 2012-08-12T12:00:24.403 に答える