¿Cómo usar una variable en un espacio de nombres?

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

preguntado el 09 de marzo de 12 a las 13:03

2 Respuestas

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

respondido 09 mar '12, 13:03

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

Así es como debes hacerlo

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

Docs

respondido 09 mar '12, 14:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.