【问题标题】:Accessing an element in an array by key按键访问数组中的元素
【发布时间】:2020-05-03 17:32:13
【问题描述】:

今天在代码审核中指出,访问像$array['keyname'] 这样的变量元素并不是最佳方法,而是应该定义一个常量,然后按如下方式使用。

define('KEYNAME', 'keyname'); // Constant defined somewhere centrally

$array[KEYNAME]; // actual usage

我的问题是,这个概念正确吗?这源于工具 Sonarqube

【问题讨论】:

  • 我认为在这里定义一个常量是为了避免硬编码字符串,所以如果你的数组键发生变化,你只需要更改定义的常量中的值,而不是对所有地方都这样做使用该文字。
  • 编程原理——DRY。你应该虔诚地遵循它。

标签: php array-key


【解决方案1】:

如果您只通过键访问数组值一次,那么$array[‘key’] 就足够了。但是,如果您不止一次地访问该值,$array[self::CONSTANT] 将使您的代码保持干燥。

如果键是动态的,那么显然常量是不合适的。相反,使用属性会产生相同的结果。 IE。 $array[$this->property]

【讨论】:

    猜你喜欢
    • 2019-06-24
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多