关于数组的最后一个元素之后是否需要追加”,”(逗号)
2023-02-18 16:29:48 时间
因为接触的东西越来越多,阅读的内容也越来越丰富,最近就产生了一个困惑:“当我们写数组时,是否需要在数组的最后一个元素之后追加一个逗号”
有问题,那么我们就需要找思路来解决和处理问题,实践出真知,说干就干,测试开始o(∩_∩)o__
首先需要明确我们的探究目的:
- 两种书写方式有什么不同
- 追加逗号是否会造成语法错误
- 追加逗号是否会改变数组长度
- 两种书写方式各有什么优缺点
- 追加逗号的方式适合在哪些语言中应用
首先,我们看看两种写法的区别
以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")
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息: 原文出处:Yiiven https://www.yiiven.cn/add-comma-after-the-last-element-or-no.html
相关文章
- 论文/代码速递2022.10.19!
- 论文/代码速递2022.10.20!
- 【AI绘画】如何优雅的在本地配置 nounovelai ?
- 英伟达最新成果!基于NeRF的并行优化方法,可用于6D姿态估计!论文/代码速递2022.10.21!
- 论文/代码速递2022.10.24!
- 低分辨率人脸识别!注意力相似性知识提取方法!论文/代码速递2022.10.25!
- 论文/代码速递2022.10.26!
- ECCV 2022 | 开放集半监督目标检测!论文/代码速递2022.10.27!
- 论文/代码速递2022.10.28!
- SCI语料库!学术写作神器——Academic Phrasebank
- 查找表实现高效的图像超分辨率!论文/代码速递2022.10.31!
- 论文/代码速递2022.11.1!
- ECCV2022 | 通过网格实现辐射场的自由变形! 已开源!论文/代码速递2022.11.2!
- DELTAR:轻量级 ToF 传感器和 RGB 图像的深度估计!论文/代码速递2022.11.3!
- AI绘画!英伟达最新文图生成模型!质量优于Stable Diffusion和Dalle2!论文/代码速递2022.11.4!
- 论文/代码速递2022.11.7!
- 论文/代码速递2022.11.8!
- FactorMatte:最新视频抠图算法,更适合于视频合成任务!论文/代码速递2022.11.9!
- 论文/代码速递2022.11.10!
- 如何在深度学习结构中使用纹理特征