0

我应该定义常量并使用它吗?

或者

我可以使用幻数吗?

我在很多地方都使用幻数的项目中工作,我想更改它吗?因为我使用了超过 1000 个幻数?这是仪式方式还是我应该使用常量?

常量的数量有什么限制吗?

前任:

 Magic numbers:
    $common->getDBMessage(25);
 Constants:
    $common->getDBMessage(ERROR_MESSAGE_INVALID_PHONE);
4

2 回答 2

1

PHP 中的常量没有限制——至少没有原生限制。

这是一个好的做法——如果你有 1000 个命名错误的常量,那么阅读你的代码的人将很难理解。并且 - 我不明白为什么要对数字使用常量,除非它们具有模型定义(或应用程序定义)的含义。

即,如果您有一些 id=1 的服务“FOO”,那么SERVICE_FOO_ID值为 1 的常量是正常的解决方案,但如果您想为 case 创建值为 1 的常量for($i=1; ...)- 这听起来很奇怪。

常见的答案当然是:这是基于意见的。由你决定。

于 2013-09-26T10:13:20.177 回答
1

您可以拥有任意数量的常量。PHP 已经内置了大量的常量。

您可能需要考虑将它们设为类常量(const在类中)而不是全局常量(使用define)。将它们组织起来将有助于您更好地构建代码并使事情更容易使用。

此外,如果某些常量是相关的,您可能会考虑对值组使用位掩码,这样您就可以一起指定它们。这将避免为组合值创建额外的常量。

但这一切只是为了让您的生活更轻松的建议;这与你能不能做到无关。

于 2013-09-26T10:16:22.243 回答