在PHP中定义常量是否有任何限制?

时间:2013-09-26 10:07:12

标签: php const

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

OR

我可以使用魔术数字吗?

我在项目中工作,我在很多地方使用魔术数字我想改变它吗?因为我使用了超过1000魔法数?这样的仪式还是我应该使用常数?

常数的数量有限制吗?

前:

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

2 个答案:

答案 0 :(得分:1)

PHP中的常量没有限制 - 至少没有本机限制。

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

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

常见的答案是,原因是:它的意见基础。这取决于你。

答案 1 :(得分:1)

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

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

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

但这一切只是让你的生活更轻松的建议;它与你能否这样做无关。

相关问题