Chris
Chris

Reputation: 132

How to use a variable in a namespace?

I'm trying to dig up my long-lost PHP skills and have therefore stumbled on a problem. I have a function that initializes (not sure if it's a correct word for it) a class in the following fashion:

$foo = new \Master\Slave\$bar();

$bar is a defined class, obviously. But the entire thing doesn't work. This only seems to work when I do the following:

$foo = new $bar();

But with my first example, it outputs the following error:

unexpected T_VARIABLE, expecting T_STRING

Which means that I have to manually enter the class name, correct? But, what if I'm a stubborn nerd who doesn't want to and doesn't see the efficiency in it? Hence my question; how to pull this off without getting a bloody error?

UPDATE: Got the thing working with wrapping the \Master\Slave\$bar in a $variable. Not sure if it's the correct way of doing this, but it works and props go to Visual Idiot

Upvotes: 0

Views: 122

Answers (2)

Starx
Starx

Reputation: 79069

AFAIK, the namespacing does not work the way you are trying to.

This is how you should do it

namespace Master\Slave;
$bar = "theclassname";
class $bar() {
}

Docs

Upvotes: 0

Peter Kiss
Peter Kiss

Reputation: 9329

Variables never bound to any namespace they will be always in the global scope.

Upvotes: 2

Related Questions