2011-09-15 39 views
5

hay una manera en php
declarar una clase utilizando un
es decir, la variable (esto no funciona - pero su aquí para darle una idea de mi intención):cómo declarar una clase PHP con un nombre de variable

$myname = "the_class"; 
class $myname { 
... 
} 

también probé:

define("MYNAME","the_class"); 
class MYNAME{ 
... 
} 

y yo tratamos:

$myname = "the_class"; 
class $$myname { 
... 
} 

ésto no ayuda realmente a:
http://php.net/manual/en/language.variables.scope.php

ni hace esto:
http://us3.php.net/manual/en/keyword.class.php

muchas gracias por su ayuda

+12

¿Por qué demonios querrías hacer eso? – NullUserException

+0

quizás si nos dijo lo que piensa hacer con él, podemos encontrar una mejor manera de lograr su objetivo final. No puedo imaginar una razón por la que esto sea necesario ... – Dan

+0

Parece que estás definiendo $ myname como una cadena, no como una clase. ¿Puede una variable señalar dos objetos? Esto es como una función (matemática) 1x -> 2ys –

Respuesta

7

Claro, usar PHP para escribir en un archivo con el nombre que desea , luego requiere ese archivo. También puede usar eval, p. algo como: eval("class $myname { ... };");

Para casos más complicados, use una biblioteca como Zend's CodeGenerator (ejemplo here).

0

No suba/rechace esta respuesta o márquela como respuesta.

Eugen Rieck's answer es el mejor, pero fue enterrado en los comentarios.

The answer he linked to muestra cómo usar class_alias() para nombrar una clase a una definición. Esto es útil si está escribiendo una clase de biblioteca y desea dejar que el usuario la nombre como lo desee, por ejemplo, estableciendo una definición en un archivo de configuración.

Así que si está escribiendo una biblioteca que contiene MyLibraryClass, puede dejar que el usuario la nombre a algo así como LC por concisión para que puedan escribir LC :: someFunction() o LC-> someFunction en lugar de tener que escribir todo fuera.

Cuestiones relacionadas