PHP文件最后空一行的原因是什么?
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 头文件:
<code>#include "A.h" #include "B.h" // A.h last line of A // B.h first line of B </code>
如果 A.h 的末尾没有一个换行,那么会最后一行会直接和 B.h 混在一起:
<code>last line of Afirst line of B </code>
所以逻辑上来讲,最后的换行就应当是文件的一部分。
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,就会忽略最后一行。
- 最后有一个空行,便于判断这个文件传输完整(而不是只传了一半

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu
