I’m trying to instantiate an object of a dynamically created classname.
I’m using namespaces and the class I want to instantiate is in the same namespace.
To examplify, this works fine:
namespace MyNamespace;
new MyClass; // MyNamespace\MyClass instantiated
Whereas this doesn’t:
namespace MyNamespace;
$class = 'MyClass';
new $class; // Class 'MyClass' not found
Is this a bug or am I doing something wrong?
When you use a string with
newyou need to provide a fully qualified class name.You can do this with
__NAMESPACE__:See the documentation for the
newoperator and the__NAMESPACE__magic constant.