我痴迷于我使用的数组和变量的最佳名称,我会在词库、字典等中查找单词。
所以我尝试将这个数组/结构命名为:
$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']可能会起作用。