【发布时间】:2020-05-03 17:32:13
【问题描述】:
今天在代码审核中指出,访问像$array['keyname'] 这样的变量元素并不是最佳方法,而是应该定义一个常量,然后按如下方式使用。
define('KEYNAME', 'keyname'); // Constant defined somewhere centrally
$array[KEYNAME]; // actual usage
我的问题是,这个概念正确吗?这源于工具 Sonarqube。
【问题讨论】:
-
我认为在这里定义一个常量是为了避免硬编码字符串,所以如果你的数组键发生变化,你只需要更改定义的常量中的值,而不是对所有地方都这样做使用该文字。
-
编程原理——DRY。你应该虔诚地遵循它。