5

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'
    }
}

}
Rizier123
  • 57,440
  • 16
  • 89
  • 140
Jürgen Paul
  • 13,381
  • 25
  • 90
  • 131

1 Answers1

9

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?

Community
  • 1
  • 1
René Höhle
  • 25,733
  • 22
  • 69
  • 78