名称在变量中的新对象

I am trying to initiate an object with a dynamic path. I have the variable $model with the model name.

$model = "foo";
$class = new \Path\To\$model();

I get the error

Parse error: syntax error, unexpected '$model' (T_VARIABLE), expecting identifier (T_STRING)

If I try $class = new \Path\To\{$model}(); I get the error

 Parse error: syntax error, unexpected '{', expecting identifier (T_STRING)

When I try

namespace \App\Models
$class = new $model(); 

I get the error Class 'foo' not found

When I try $class = new \Path\To\foo(); it works.

Any ideas?

Try:

$class = "\Path\To\foo";
$object = new $class();

Or:

use Path\To\foo;
$class = foo::class;
$object = new $class();

You can store path in variable:

$path = "\Path\To\\";

and then generate class name like this:

$className = $path.$model;
$class = new $className();