【发布时间】:2014-01-24 11:41:21
【问题描述】:
我正在做一个项目,例如,所有全局常量都定义在一个名为 Constants 的类中
class Constants
{
const MIN_VALUE = 0.0;
const MAX_VALUE = 1.0;
public static function getMinValue()
{
return self::MIN_VALUE;
}
public static function getMaxValue()
{
return self::MAX_VALUE;
}
public static function getValueDependingOnURL()
{
if($_SERVER['REQUEST_URI'] == 'something')
{
return self::MIN_VALUE;
}
else
{
return self::MAX_VALUE;
}
}
}
然后在整个代码中,Constants::getMaxValue() 之类的东西用于获取常量的值。这似乎是一种非常奇怪的方法,为什么您不只在最外层范围内使用 define 函数呢?我知道define() 可能会很慢,但调用类属性肯定也不是最有效的方法吗?
编辑:有些函数也有条件,因此为什么要调用函数
【问题讨论】:
-
为什么要有静态方法? Constants::MIN_VALUE 的工作原理完全相同。
-
这没有任何意义。
-
为什么 2 个人关闭投票这个“基于意见”?与配置容器和全局定义的常量相比,有明显的优点和缺点。这与意见无关。似乎问题查看者与 OP 本人处于相同的软件设计经验水平:-)