为什么PHP数组示例会留下逗号?
我看过以下示例:
$data = array(
'username' => $user->getUsername(),
'userpass' => $user->getPassword(),
'email' => $user->getEmail(),
);
但是,在实践中,我始终没有离开结尾的逗号。 我是在做错什么,还是这只是“另一种”方式? 如果我使用的是框架,结尾逗号不会对代码生成产生负面影响吗? 我也看到过在其他语言(Java,C ++)的数组声明中也使用尾部逗号,因此我认为留下尾部逗号的原因并不特定于PHP,但这引起了我的兴趣。
9个解决方案
89 votes
为什么PHP数组示例会留下逗号?
因为他们可以。 :) PHP手册中有关数组状态的条目:
在最后定义的数组条目之后使用逗号结尾(虽然不寻常)是有效的语法。
认真地说,这完全是为了方便起见,因此您可以轻松地将另一个元素添加到数组中,而不必先将尾部逗号添加到最后一个条目。
说其他语言:JavaScript中要小心。 Firefox将宽容尾随逗号。 Internet Explorer将正确地引发错误。
Pekka 웃 answered 2019-09-30T11:42:41Z
20 votes
在多行上定义数组时,这是一个好习惯。 ZendFramework的编码标准也鼓励它:
使用后一个声明时,我们 鼓励使用逗号结尾 数组中的最后一项; 这个 最小化添加新的影响 连续行中的项目,并有帮助 确保不会由于以下原因而发生解析错误 缺少逗号。
Janci answered 2019-09-30T11:43:11Z
18 votes
我注意到在使用版本控制(git)时,如果我们向数组添加1个东西并且没有尾随逗号,则看起来就像我们修改了2行,因为必须将逗号添加到前一行。 我发现这看起来很糟糕,并且在查看文件更改时可能会产生误导,因此,我认为以逗号结尾是一件好事。
user985366 answered 2019-09-30T11:43:36Z
7 votes
因为它使条目保持一致。
如果您必须交换订单,或者添加或删除条目,那么知道可以留下逗号是非常方便的。
如果最后一个元素不能有逗号,则最终必须通过修改条目来维护最后一个逗号。 这是没有意义的练习,浪费了时间和手指笔触,因为交换或修改条目的意图已经实现。
通过在最后一个元素上使用逗号结尾,可以使程序员不必费力去处理这些烦人且毫无结果的细节。
ahnbizcad answered 2019-09-30T11:44:20Z
4 votes
我不能代表其他人说话,但是我通常在代码中加上逗号。 之所以这样做,是因为如果/以后在添加到数组时,我不必担心由于忘记在前面的最后一行添加逗号而错过了逗号。
Peter Horne answered 2019-09-30T11:44:44Z
4 votes
我觉得即使允许这样做也是一种不好的做法,就像忽略了函数和循环的最后一个分号一样。
Skelly1983 answered 2019-09-30T11:45:09Z
4 votes
原因是提交更改。
如果必须在添加新元素时添加结尾逗号。 您要更改1行并添加1行。( - ++)
当上面的行中已经有逗号时,添加新元素时。 仅添加了1行,没有更改。(+)
Yani answered 2019-09-30T11:45:49Z
3 votes
我一直在做逗号结尾,因为它有助于避免在添加新的数组元素时出现语法错误……这只是一个好习惯。
Kirzilla answered 2019-09-30T11:46:14Z
0 votes
最近这让我感到惊讶,但这是有道理的。 长期以来,我一直在尝试遵循实现相同功能的更早的约定,即将分隔逗号放在每个条目的前面而不是结尾。
$data = array(
'username' => $user->getUsername()
, 'userpass' => $user->getPassword()
, 'email' => $user->getEmail()
);
逗号也都以这种方式排列,看起来不错,但它会使缩进有些尴尬。 也许由于这个原因,这些年来似乎并没有流行很多,而且我让其他人问我为什么这样做。 我猜想PHP的解决方案是一个很好的折衷方案,无论如何,它显然是现在公认的解决方案。
JohnBrooking answered 2019-09-30T11:46:45Z