因为接触的东西越来越多,阅读的内容也越来越丰富,最近就产生了一个困惑:“当我们写数组时,是否需要在数组的最后一个元素之后追加一个逗号”

有问题,那么我们就需要找思路来解决和处理问题,实践出真知,说干就干,测试开始o(∩_∩)o__

首先需要明确我们的探究目的:

  1. 两种书写方式有什么不同
  2. 追加逗号是否会造成语法错误
  3. 追加逗号是否会改变数组长度
  4. 两种书写方式各有什么优缺点
  5. 追加逗号的方式适合在哪些语言中应用

首先,我们看看两种写法的区别

以PHP为例:

不追加逗号是这样的

array(
  "name" => "lilei",
  "age" => "18"
)

追加逗号是这样的

array(
  "name" => "lilei",
  "age" => "18",
)

然后,我们要检查追加逗号是否会造成语法错误或者产生警告

首先我们需要将PHP错误报告级别设置为最严格的方式

error_reporting(E_ALL);

然后执行下面这段简单的代码

$arr= array(
  "name" => "lilei",
  "age" => "18",
);
print_r($arr);

执行结果:

Array
(
    [name] => lilei
    [age] => 18
)

嗯,结果很美,并没有报告任何错误和警告,连notice都没有

结论:追加逗号不会造成PHP的语法错误

再然后,我们还需要检查一下是否会改变数组的长度

还是上面那个数组,我们分别对两种写法进行一次count()

//不追加逗号
$arr= array(
  "name" => "lilei",
  "age" => "18"
);
echo count($arr);

//追加逗号
$arr= array(
  "name" => "lilei",
  "age" => "18",
);
echo count($arr);

执行结果:

不追加逗号:2

追加逗号:2

结论:追加逗号不会改变数组长度

两种写法的优缺点对比

优点 缺点
追加逗号 无论是增加还是删减元素,都无需考虑数组结尾有没有追加逗号,改变时随心即可完成,方便 虽然在PHP中追加逗号不存在问题,但在json和sql中,这种语法是会产生错误的
不追加逗号 完全符合PHP的语法,且几乎所有语言的语法逻辑都是如此,不必担心兼容性问题 除了变更数组的时候需要考虑数组结尾有没有追加逗号之外,似乎并没有什么特别突出的缺点

结语

建议大家还是养成良好的习惯,同意编程风格,不采用在数组最后一个元素后面追加逗号的做法,尤其是需要接触多种语言的情况下。

或者可以只在php中使用追加逗号这种做法

又或者可以选择性的在PHP中使用追加逗号的做法,比如

在格式化写法时追加逗号

array(
  "name" => "lilei",
  "age" => "18",
)

在非格式化写法时不追加逗号

array("name" => "lilei","age" => "18")

发表评论

电子邮件地址不会被公开。 必填项已用*标注