如何在类中定义常量,并使其仅在类上下文中调用时可见?
像Foo::app()->MYCONSTANT;
一样的....something
(如果像MYCONSTANT
一样调用,则被忽略)
发布于 2013-03-30 01:51:13
这是一个相当古老的问题,但也许这个答案仍然可以帮助其他人。
您可以通过将final关键字应用于返回预定义值的方法来模拟在类范围内受到限制的公共常量,如下所示:
class Foo {
// This is a private constant
final public MYCONSTANT()
{
return 'MYCONSTANT_VALUE';
}
}
方法上的final关键字可防止扩展类重新定义该方法。您还可以将final关键字放在类声明的前面,在这种情况下,该关键字会阻止类继承。
要获得几乎与Alex所寻找的内容完全相同的内容,可以使用以下代码:
final class Constants {
public MYCONSTANT()
{
return 'MYCONSTANT_VALUE';
}
}
class Foo {
static public app()
{
return new Constants();
}
}
模拟的常量值可以像这样访问:
Foo::app()->MYCONSTANT();
https://stackoverflow.com/questions/5892226
复制相似问题