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

the*_*cat 1 php class constants

类常数

class Hello{    
  const SOME_SETTING = 5;

}
Run Code Online (Sandbox Code Playgroud)

正常常数

define('HELLO_SOME_SETTING', 5);
Run Code Online (Sandbox Code Playgroud)

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

Hello::SOME_SETTING
Run Code Online (Sandbox Code Playgroud)

访问常规常量

HELLO_SOME_SETTING
Run Code Online (Sandbox Code Playgroud)

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

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

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

Jon*_*Jon 7

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

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

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