php里空一行怎么写,PHP文件最后空一行的原因是什么?

PHPFIG标准规定所有PHP文件必须以一个空行结束,这源自Unix传统,有助于区分文件内容和命令行提示符。不以空行结尾的文件在输出和行数统计时可能引发混淆。此外,文件末尾的换行符确保了数据一致性,例如在PHP数组中避免在最后一个元素后处理逗号的问题。这一做法也常见于Python和C语言等,而JSON则要求移除最后一个元素后的逗号。
摘要由CSDN通过智能技术生成

PHP FIG中提及:

All PHP files MUST end with a single blank line. -- 来源

有说是方便命令行下查看代码时最后一行代码和命令行提示符分隔开。

回复内容:

PHP FIG中提及:

All PHP files MUST end with a single blank line. -- 来源

有说是方便命令行下查看代码时最后一行代码和命令行提示符分隔开。

简而言之:

文件的以空行结尾是Unix的惯例

原因如下

不以空行结尾的文件输出容易混淆:

konrad$ more testfile.txt

Line one

Line twokonrad$

不以空行结尾的文件统计行数会出错:

$ echo -n "Line not ending in a new line" | wc -l

0

$ echo "Line ending with a new line" | wc -l

1

也有提到GCC默认必须以空行结束、为了方便readline工具读取等等说法,恕我不能一一考证

参考链接:

1.http://stackoverflow.com/questions/729692/why-should-files-end-with-a-newline

2.https://github.com/php-fig/fig-standards/pull/58#issuecomment-10306841

换行是一行结束的标志,虽然一般会显示为下一行开始处的一个光标,但逻辑上应该是在上一行的结尾的。

比如在 C 语言中我们要 include 头文件:

#include "A.h"

#include "B.h"

// A.h

last line of A

// B.h

first line of B

如果 A.h 的末尾没有一个换行,那么会最后一行会直接和 B.h 混在一起:

last line of Afirst line of B

所以逻辑上来讲,最后的换行就应当是文件的一部分。

C 语言,以及后来的其他语言的编译器都要求文件末尾具有一个换行。

每行末尾都使用换行符,这是发源于Unix的习惯,可以查资料了解并不过多解释。

这样做的一个好处是有助于保证数据的一致性:每一行一定表示为“内容+换行符”。——数据一致性有一个便利性在于:不必关心最后一个元素后边没有分隔符的问题。

以PHP的数组为例,PHP数组支持[1, 2, 3,]这样最后一个元素后边有逗号的语法,就是为了保证分行定义时,不必特意关心最后一个元素后边的逗号怎么处理:

[

'string constant 1',

'string constant 2',

'string constant 3',

]

Python也在list和tuple上采用同样的实践,甚至将有无逗号用来区别tuple和括号括起来的常量:

(1) # Integer 1

(1, ) # Tuple with only one element

相比之下,JSON的实践就差了一些:JSON强制要求删除最后一个元素后边的逗号。

主要有两个理由:

某些工具(特别是比较古老的),如果文件的末尾没有\n或\r,就会忽略最后一行。

最后有一个空行,便于判断这个文件传输完整(而不是只传了一半

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值