命名约定-按带布尔值的id索引的数组的最佳名称



我痴迷于我使用的数组和变量的最佳名称,我会在词库、字典等中查找单词。

所以我尝试将这个数组/结构命名为:

$nameMe = array(
    '392' => TRUE,
    '234' => TRUE,
    '754' => TRUE,
    '464' => TRUE,
);

它用于检查id是否具有特定属性,比如

if(isset($name[$id])) {
    doSomething();
}

问题是我得到了很长的变量名,比如

$propertyNameArrayIdIndexed

关于如何更好地命名数组的这个特定函数,有什么想法吗?或一般中更好的名称

$hasProperty[$id]

$isSomething[$id]

这处房产究竟是什么?

$isOdd[$id]
$isWriteable[$id]
$hasAssociatedFile[$id]

长变量名没有错,只要它们描述了变量的作用,而不是如何声明或定义变量。

我会从变量名中删除"Array"。

使用数组的函数可以命名为:

IsPropertyAvailable?($id)

或者只是

是否可用?($id)

当适当封装时。

因此,用于查询的相关数据结构可以命名为

$availableIds

根据变量的"角色"(在UML意义上)而不是其类型来命名变量。因此,变量的正确名称应该在很大程度上取决于它在哪里以及如何使用。仅仅知道数据结构的类型是不足以给它起一个合适的名字的。因此,假设您有一个属性的枚举,每个属性都可以作为图标呈现。我会省略任何类型的指示,并声明它类似于Set<Property> displayableIcons

即使使用匈牙利表示法,实际类型也不应该是名称的一部分,但一些类型限定符或非正式子类型的指示也可以,比如String b64JpgMugshot

您希望您的代码读起来尽可能像普通英语。用通俗的英语来说,你最终会得到这样的东西;

如果汽车是红色的做红色汽车的东西

因此,我的建议是避免在变量命名中引入不必要的计算机语言("array"、"property"、"index"等)。您的编程语言正在将"isset"强加给您。这很好,这表明你有一个布尔值数组,这意味着你可以简单地说;

if(isset(红色[car_idx])dosomething();

摘要:我认为数组应该简单地命名为您尝试测试的属性。如果属性的名称是一个很好的英语形容词,无论是否适用于名词,即使没有isset(),数组的布尔性质也是显而易见的。这么简单;

红色[]、Oblong[]、Large[]

不是IsRed[]、IsOblong[]、IsLarge[],因为除了isset()中的一个之外,额外的"Is"是多余的。

propertyNameable,IspropertyNameble。

您的数组是否只包含true?如果是这样的话,我想把你的数据结构改成这样:

$availableIds = array(392, 234, 754, 464);

然后你的if语句就更有意义了:

if (in_array($myId, $availableIds)) { ... }

我只使用dah[]。

我同意其他评论者的观点,即这个问题似乎缺乏适当的上下文来进行适当的简洁命名,但一些通用的东西,如able['fo']、enabled['bar']或ready['ack']可能会起作用。

最新更新