Reputation: 14997
Let's say for an instance I have a class:
//no namespace
class User {
//...
}
And I have a variable:
$model = 'User';
How do I instantiate a new User
when I am currently in a namespace?
new $model
works when I'm not in a namespace. But what if I am in a namespace and User
is not in a namespace.
Something like this doesn't work:
namespace Admin;
class Foo {
function fighter($model)
{
return new \$model;
// syntax error, unexpected '$model'
}
}
}
Upvotes: 6
Views: 2571
Reputation: 27295
Put the complete Namespace first in a variable and then use it.
<?php
$namespace = '\\'.$model;
return new $namespace
?>
Same Topic: Can PHP namespaces contain variables?
Upvotes: 10