есть ли способ в php
объявить класс, используя переменную
т.е. (это не работает – но здесь, чтобы дать вам представление о моем намерении):
$myname = "the_class"; class $myname { ... }
я также пробовал:
define("MYNAME","the_class"); class MYNAME{ ... }
и я попробовал:
$myname = "the_class"; class $$myname { ... }
это действительно не помогает:
http://php.net/manual/en/language.variables.scope.php
и не делает этого:
http://us3.php.net/manual/en/keyword.class.php
Большое спасибо за вашу помощь
Конечно, используйте php для записи в файл с нужным именем, затем требуйте этот файл. Вы также можете использовать eval
, например, что-то вроде: eval("class $myname { ... };");
Для более сложных случаев используйте библиотеку, такую как Zend's CodeGenerator
(пример здесь ).
Пожалуйста, не увеличивайте / уменьшайте этот ответ или не отмечайте его как ответ.
Ответ Юджина Рика – лучший, но похоронили в комментариях.
Ответ, который он связал, показывает, как использовать class_alias (), чтобы назвать класс для определения. Это полезно, если вы пишете класс библиотеки и хотите, чтобы имя пользователя было им угодно, например, установив определение в файле конфигурации.
Поэтому, если вы пишете библиотеку, содержащую MyLibraryClass, вы можете позволить пользователю назвать ее чем-то вроде LC для краткости, чтобы они могли писать LC :: someFunction () или LC-> someFunction вместо того, чтобы писать все это.