如何用变量名声明一个PHP类


how to declare a php class with a variable name

php
使用变量
声明一个类(这行不通——但它在这里给你一个我的意图的想法):

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

i also tried:

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

and I tried:

$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的CodeGenerator库(此处为示例)。

请不要给这个回答投票,也不要把它标记为答案。

Eugen Rieck的答案是最好的,但被埋在了评论中。

他链接到的答案显示了如何使用class_alias()将类命名为定义。如果你正在编写一个库类,并希望用户名是他们想要的,例如通过在配置文件中设置一个定义,这是很有用的。

所以如果你在写一个包含MyLibraryClass的库,你可以让它的用户名像LC这样简洁,这样他们就可以写LC::someFunction()或LC->someFunction而不必把整个东西写出来