Intereting Posts
SilverStripe за балансировщиком нагрузки Считать строку с pdo и реляционной базой данных Хранить переменные массива через страницу Обновить с помощью PHP Как использовать переменную в двух разных файлах Php? Самый эффективный способ реализации «входа в систему» ​​с MVC в PHP? как я могу получить все опции в нескольких вариантах, используя PHP? Аутентификация системы без сеансов – Только куки – Является ли это достаточно безопасным? Загрузите несколько файлов в виде zip-файла, используя php Codeigniter: как я могу зашифровать пароль перед отправкой формы на контроллер? CURLOPT_NOBODY все еще загружает тело – используя полосу пропускания Отключить Doctrine 2 ленивой загрузки при использовании JMS Serializer? PHP показывает только значимые (отличные от нуля) десятичные знаки Я хочу использовать несколько функций select2 onchange динамически PHP – получение записей массивов по диапазону индексов Расширение 7z для php?

как объявить php-класс с именем переменной

есть ли способ в 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

Большое спасибо за вашу помощь

Solutions Collecting From Web of "как объявить php-класс с именем переменной"

Конечно, используйте php для записи в файл с нужным именем, затем требуйте этот файл. Вы также можете использовать eval , например, что-то вроде: eval("class $myname { ... };");

Для более сложных случаев используйте библиотеку, такую ​​как Zend's CodeGenerator (пример здесь ).

Пожалуйста, не увеличивайте / уменьшайте этот ответ или не отмечайте его как ответ.

Ответ Юджина Рика – лучший, но похоронили в комментариях.

Ответ, который он связал, показывает, как использовать class_alias (), чтобы назвать класс для определения. Это полезно, если вы пишете класс библиотеки и хотите, чтобы имя пользователя было им угодно, например, установив определение в файле конфигурации.

Поэтому, если вы пишете библиотеку, содержащую MyLibraryClass, вы можете позволить пользователю назвать ее чем-то вроде LC для краткости, чтобы они могли писать LC :: someFunction () или LC-> someFunction вместо того, чтобы писать все это.