我应该定义常量并使用它吗?
或
我可以使用幻数吗?
我正在项目中工作,我在很多地方使用幻数,我想改变它吗? 因为我使用的幻数超过 1000 个?这是仪式方式还是我应该使用恒定?
常量的数量有限制吗?
前任:
Magic numbers:
$common->getDBMessage(25);
Constants:
$common->getDBMessage(ERROR_MESSAGE_INVALID_PHONE);
您可以拥有任意数量的常量。PHP 已经内置了大量的常量。
您可能需要考虑将它们设置为类常量(const
类内)而不是全局常量(使用 define
)。组织它们将帮助您更好地构建代码并使其更易于使用。
此外,如果某些常量是相关的,则可以考虑对值组使用位掩码,以便可以一起指定它们。这将避免为组合值创建附加常量。
但這一切只是讓你的生活更輕鬆的建議;它與你是否能做到無關。
PHP 中对常量没有限制 - 至少没有本机限制。
这是一个很好的做法 - 如果你有 1000 个命名错误的常量,那么那些会阅读你的代码的人将很难理解这一点。而且 - 我不明白为什么要对数字使用常量,除非它们具有模型定义(或应用程序定义)的含义。
即,如果您有一些 id=1 的服务"FOO",那么值为 1 SERVICE_FOO_ID
常量是正常的解决方案,但如果您想为案例for($i=1; ...)
创建值为 1 的常量 - 这听起来很奇怪。
常见的答案是,原因:这是意见基础。这取决于你。