gpt4 book ai didi

php - PHP类常量的单字母前缀?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:18 25 4
gpt4 key购买 nike

我注意到许多(所有?)PHP 常量都有一个单字母前缀,例如 E_NOTICET_STRING 等。在定义一组类常量时与彼此一起工作,你更喜欢遵循类似的做法,还是更喜欢更冗长?

class Foo {
// let's say 'I' means "input" or some other relevant word
const I_STRING = 'string';
const I_INTEGER = 'integer';
const I_FLOAT = 'float';
}

class Bar {
const INPUT_STRING = 'string';
const INPUT_INTEGER = 'integer';
const INPUT_FLOAT = 'float';
}

最佳答案

在 5.3 之前,PHP 仅限于一个全局命名空间。这意味着任何用 define 声明或内置到语言中的常量都需要一个前缀来对它们自己进行分区——如果你愿意的话,命名空间很便宜。

关于常量本身:虽然 E_NOTICEERROR_NOTICE 更容易输入,但前者的主要缺点是不能 self 记录。在全局上下文中,您不仅需要通过前缀将常量分区,这些前缀还应尽可能具有描述性。

类常量是一个稍微不同的野兽,因为你总是通过类名引用它们 - 分区将被内置。所以你最终会得到 Account::STATUS_CONFIRMED帐户::STATUS_BANNED。但是如果我计划有几十个状态,我会把它们放在它们自己的类中,例如AccountStatus::CONFIRMEDAccountStatus::BANNED

无论您为常量决定什么命名约定,主要考虑因素是分区和自记录名称(冗长)。

关于php - PHP类常量的单字母前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com