使用PHP中的define/apc_define_constants取消定义常量

Gal*_*Gal 1 php constants

我正在使用常量来输出不同语言的输出消息.例如,如果用户选择"英语",则需要具有此常量的文件:

define('welcomeMessage','Welcome!');
Run Code Online (Sandbox Code Playgroud)

如果她选择"西班牙语":

define('welcomeMessage','Bien Venidos!');
Run Code Online (Sandbox Code Playgroud)

等等......

当用户迭代语言时会发生此问题.我不能用define/apc_define_constants重新定义常量(据我所知).我可以删除并重新定义它们吗?

这有一个很好的解决方案吗?

wpj*_*ray 5

如果稍后可以更改值,则使用常量是没有意义的.我建议创建一个静态类,您可以在其中设置语言,而不是使用常量,您将从该类获得欢迎消息.让我们说这堂课名叫郎:

Lang::setLang('spanish');
Lang::getWelcome();
Run Code Online (Sandbox Code Playgroud)

getWelcome()方法使用setLang()检查lang值集并返回相应的已翻译字符串.

使用静态类意味着您不必实例化该类,并且所有其他代码都可以引用该静态类,而无需创建新实例并且必须设置所使用的语言.