php 逗号 数组,为什么PHP数组示例会留下逗号?

为什么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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值