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