使用类常量而不是全局常量有什么好处吗?

时间:2013-11-18 15:35:06

标签: php class constants

类常量

class Hello{    
  const SOME_SETTING = 5;

}

正常常数

define('HELLO_SOME_SETTING', 5);

要访问类常量,我必须调用

Hello::SOME_SETTING

访问常规常量

HELLO_SOME_SETTING

到目前为止两者都可以,但如果我想更新某些常量的值会发生什么?我必须浏览.php文件,跟踪每个类并修改常量。

但是使用常规常量我只需将所有定义放在一个配置文件或其他内容中,当我需要更改内容时,我可以轻松找到它们。

在我看来,这是类常量的一个缺点。有什么好处吗?

1 个答案:

答案 0 :(得分:7)

主要优势是地方性,它提供了更好的组织结构。如果你有一个使用BufferedReader常量的类BUFFER_SIZE,那么在使用它的代码旁边定义常量要好得多。

  

但是使用常规常量我只需将所有定义放在一个   单个配置文件或其他东西,我可以在那里轻松找到它们   需要改变一些事情。

这是恕我直言,使用常数的错误方法(尽管这种做法非常普遍)。就可以预见,常数是不会改变的 - 例如,一周中的天数。您在这里描述的是配置变量