2011-10-29 38 views
12

Estoy experimentando con la funcionalidad de creación de espacios de nombre de PHP 5.3 y simplemente no puedo encontrar la forma de instanciar una nueva clase con el prefijo del espacio de nombres.PHP, nueva clase de variable en el espacio de nombres

este momento funciona bien:

<?php 
new $className($args); 
?> 

Pero cómo puede anteponer mi espacio de nombres delante de un nombre de clase variable? El siguiente ejemplo no funciona.

<?php 
new My\Namespace\$className($args); 
?> 

Este ejemplo se obtiene: Error de análisis: error de sintaxis, T_VARIABLE inesperada

Respuesta

15

Prueba esto:

$class = "My\Namespace\$className"; 
new $class(); 
+2

costumbre u necesidad de escapar de la barra invertida? "Mi \\ Namespace \\ $ className"; – Stevanicus

+0

No lo entiendo ... ¿por qué es esto necesario? Tuve que hacer lo mismo. ¿Hay algún problema con la instalación de PHP? –

+0

El motivo de la doble barra invertida es que la barra diagonal inversa es un carácter funcional y debe escaparse. – Dandy

Cuestiones relacionadas