我应该定义常量并使用它吗?
或者
我可以使用幻数吗?
我在很多地方都使用幻数的项目中工作,我想更改它吗?因为我使用了超过 1000 个幻数?这是仪式方式还是我应该使用常量?
常量的数量有什么限制吗?
前任:
Magic numbers:
$common->getDBMessage(25);
Constants:
$common->getDBMessage(ERROR_MESSAGE_INVALID_PHONE);
PHP 中的常量没有限制——至少没有原生限制。
这是一个好的做法——如果你有 1000 个命名错误的常量,那么阅读你的代码的人将很难理解。并且 - 我不明白为什么要对数字使用常量,除非它们具有模型定义(或应用程序定义)的含义。
即,如果您有一些 id=1 的服务“FOO”,那么SERVICE_FOO_ID
值为 1 的常量是正常的解决方案,但如果您想为 case 创建值为 1 的常量for($i=1; ...)
- 这听起来很奇怪。
常见的答案当然是:这是基于意见的。由你决定。
您可以拥有任意数量的常量。PHP 已经内置了大量的常量。
您可能需要考虑将它们设为类常量(const
在类中)而不是全局常量(使用define
)。将它们组织起来将有助于您更好地构建代码并使事情更容易使用。
此外,如果某些常量是相关的,您可能会考虑对值组使用位掩码,这样您就可以一起指定它们。这将避免为组合值创建额外的常量。
但这一切只是为了让您的生活更轻松的建议;这与你能不能做到无关。