0

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

2 Answers 2

2

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

Sign up to request clarification or add additional context in comments.

Comments

0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.