2

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

所以我试图命名这个数组/结构:

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

它用于检查该 id 是否具有特定属性,就像这样

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

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

$propertyNameArrayIdIndexed

关于如何更好地命名数组的这个特定函数的任何想法?或更好的名字

4

9 回答 9

4
$hasProperty[$id]

或者

$isSomething[$id]

究竟是什么属性?

$isOdd[$id]
$isWriteable[$id]
$hasAssociatedFile[$id]
于 2008-10-15T01:15:21.607 回答
2

长变量名没有错,只要它们描述变量正在做什么,而不是它是如何声明或定义的。

于 2008-10-15T01:11:06.933 回答
2

我会从变量名中删除“数组”。

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

IsPropertyAvailable?($id)

要不就

是否可用?($id)

正确封装时。

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

$availableIds

于 2008-10-15T01:13:58.380 回答
1

你希望你的代码读起来尽可能像简单的英语。用简单的英语,你最终会得到类似的东西;

If the car is red 做红车的事

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

if( isset(red[car_idx]) ) dosomething();

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

红色[]、长方形[]、大[]

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

于 2008-10-15T01:14:41.200 回答
1

通过它们的“角色”(在 UML 意义上)而不是它们的类型来命名变量。因此,变量的正确名称应该很大程度上取决于它的使用位置和使用方式。仅仅知道数据结构的类型不足以给它一个恰当的名字。因此,假设您有一个属性枚举,每个属性都可以作为图标呈现。我会省略任何类型的指示,并将其声明为Set<Property> displayableIcons.

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

于 2008-10-15T01:39:31.243 回答
0

属性命名,IspropertyNameable。

于 2008-10-15T01:07:40.280 回答
0

你的数组只包含true吗?如果是这样,我会说将您的数据结构更改为以下内容:

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

然后你的if陈述更有意义:

if (in_array($myId, $availableIds)) { ... }
于 2008-10-15T01:20:56.117 回答
0

我只是使用 dah[]。

于 2008-10-15T01:50:21.690 回答
0

I would agree with other commenters that the question seems to lack proper context for proper concise naming, but something generic like able['foo'], enabled['bar'] or ready['ack'] may work.

于 2008-10-15T02:00:11.903 回答