有没有办法在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
非常感谢你的帮助
答案 0 :(得分:7)
当然,使用php写入具有所需名称的文件,然后需要该文件。您也可以使用eval
,例如类似于:eval("class $myname { ... };");
对于更复杂的情况,请使用Zend的CodeGenerator
等库(例如here)。
答案 1 :(得分:0)
请不要上传/下注此回复或将其标记为答案。
Eugen Rieck's answer是最好的一个,但被置于评论中。
The answer he linked to显示了如何使用class_alias()将类命名为define。如果您正在编写库类并希望让用户为其命名,例如通过在配置文件中设置define,这将非常有用。
因此,如果您正在编写一个包含MyLibraryClass的库,您可以让用户将其命名为LC之类,以便简洁,这样他们就可以编写LC :: someFunction()或LC-> someFunction而不必编写整个事物进行。