在PHP中,数组是用复数还是用单数命名?

在PHP中,数组是用复数还是用单数命名?,php,arrays,naming-conventions,Php,Arrays,Naming Conventions,在命名数组类型变量时,我经常会遇到一个难题: 我用复数还是单数来命名数组 例如,假设我有一个名称数组:在PHP中,我会说:$names=array(“Alice”、“Bobby”、“Charles”) 但是,假设我想引用这个数组中的一个名称。对于博比,我要说:$names[1]。然而,这与直觉相反。我宁愿叫鲍比$name[1],因为鲍比只有一个名字 所以,你可以看到一个微小的差异。命名数组有约定吗?我使用复数形式。然后我可以做一些类似的事情: $name = $names[1]; 总是复数。对

在命名数组类型变量时,我经常会遇到一个难题: 我用复数还是单数来命名数组

例如,假设我有一个名称数组:在PHP中,我会说:
$names=array(“Alice”、“Bobby”、“Charles”)

但是,假设我想引用这个数组中的一个名称。对于博比,我要说:
$names[1]
。然而,这与直觉相反。我宁愿叫鲍比
$name[1]
,因为鲍比只有一个名字


所以,你可以看到一个微小的差异。命名数组有约定吗?

我使用复数形式。然后我可以做一些类似的事情:

$name = $names[1];

总是复数。对于可以容纳多个元素的任何其他数据类型的列表也是如此。

我通常在末尾给它一些东西,比如列表

nameList

否则,我就用复数。

复数,尽管学校里教你用单数,所以你可以说:

value[0] = 42;
真的,如果你仔细想想,这比:

values[0] = 42
如果你不相信我,就大声说出来。不管怎样,我确实使用复数,以便在扫描代码时可以很容易地分辨出来。这似乎也是人们现在使用的标准。

复数

sort(name)
sort(names)
显然,这里只有复数才有意义

然后,这里:

name[1]
names[1]
在这种情况下,两者都有意义

因此,当引用整个集合时,复数是唯一有意义的,而当引用集合中的一个项目时,复数是唯一有意义的。

对我来说复数

出于上述所有原因,以及我工作的约定(我参与创建的约定)要求数组/列表/向量等使用复数


尽管复数命名在某些情况下可能会导致一些异常,但大多数情况下,它提供了更清晰的信息和更易于扫描阅读的代码,而不会让人产生一种烦人的感觉,即当你重新开始对大脑进行解构时,你的思维会捕捉到一个奇怪的结构并中断流程。

Name应该如果读者不熟悉类型声明,请始终传达尽可能多的信息。因此,数组或集合应以复数形式命名


我个人认为$name[1]有误导性,因为它的意思是“名称的第一个元素”,这在英语中没有意义

总是复数。这样,当我这样做的时候就不会有任何困惑

for each (string person in people)
{
    //code
}

其他人说的:复数

这在PHP中甚至更为明显:

$name = 'Bobby';
echo $name[1];
将显示o:-)


我必须承认,几年前我问过自己同样的问题,但在访问一个成员时,显示数组或集合的复数性质比英语意义更重要…

我通常使用复数形式,或者有时使用与这里引用的相同的方式,将列表添加到名称中…

我使用许多不同的语言,有一件事没有考虑到,那就是语言的数组数超过了。i、 e人:人;人物:字典。人不一定是数组,它可能是另一种类型并导致错误。此外,在某些语言中,不同的类型在不同的操作中表现更好,或者可能有不同的方法可供使用

这就是为什么现在在所有语言中,我都用单数名词加上personArray或personu arr(如果你愿意的话)等类型来命名。如果相关的话,我通常在开始时也包括范围界定。变量名应该足够明确,不需要自动完成或ctrl+f就可以知道它是什么。

我一直都喜欢它

appleList 
appleArray
nameAppleDict
通过正确地完成命名约定,可以为其他人节省大量阅读代码的时间。因为他们不必返回并检查变量类型来理解它

具有变量名,如:

apples 

有时可能会混淆(列表、数组或集合?

当您调用$names[1]时,您可能会认为该变量包含许多名称,并且您正在引用该数组的一个实例。当你想到一个名为$name的变量时,你会认为它只包含一个名称。对于一个多维名称数组,我们会使用
$names[1]
?是的,总是复数,还是说它是一个集合/列表,名称总是复数。绝对总是。其他一切都是高度误导的。$sheep=$sheep[1];啊!我完全同意作者的观点。但这意味着我们,程序员是不一致的。因为我们总是打算使用标准。集合我们称为复数$names,但在上讨论过,所以最好用单数命名DB中的表,例如table student。如何理解我们?那是搭便车的人的参考资料吗?哈哈+1我倾向于使用$people或$children。即使它不是正确的英语,你也能明白它的意思。这样,我使用了一种约定,即复数为单数,并附加“s”。“虽然我仍然不确定我的惯例是否是最好的。”里曼
$childrens
是一个双复数(从词源上讲,children也是一个双复数,因为-er和-en都是复数后缀,childer在英格兰北部的一些地方仍然可以听到)。一个人就是一组人。这就是为什么我总是使用
$peoples
$childrenses
,只是为了确定。名字永远不应该传达任何关于类型、可见性、继承性等的信息。不要把“关于类型的信息”与匈牙利符号的概念混为一谈。这不是他在这里所说的。用
名字作为名字的语言呢?作为currentName的每个名称
是否更合适?另外,
sort(nameList)
更有意义。就像字符串中包含字符一样,这更有意义。它可以帮助阅读代码的任何人快速理解变量的类型,即使是你自己,在阅读代码很长时间后回来时也是如此。这被称为“匈牙利符号”,由于许多原因被认为是不好的做法。如果
名称列表
表示名称列表,则名称