Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php PHP文件最后空一行的原因是什么?

PHP文件最后空一行的原因是什么?

Jun 06, 2016 pm 08:47 PM
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$
Salin selepas log masuk
  • 不以空行结尾的文件统计行数会出错:
$ echo -n "Line not ending in a new line" | wc -l
0
$ echo "Line ending with a new line" | wc -l
1
Salin selepas log masuk

也有提到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>
Salin selepas log masuk

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

<code>last line of Afirst line of B
</code>
Salin selepas log masuk

所以逻辑上来讲,最后的换行就应当是文件的一部分。
C 语言,以及后来的其他语言的编译器都要求文件末尾具有一个换行。

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

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

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

[
 'string constant 1', 
 'string constant 2', 
 'string constant 3', 
]
Salin selepas log masuk

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

(1) # Integer 1
(1, ) # Tuple with only one element
Salin selepas log masuk

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

主要有两个理由:

  • 某些工具(特别是比较古老的),如果文件的末尾没有\n或\r,就会忽略最后一行。
  • 最后有一个空行,便于判断这个文件传输完整(而不是只传了一半
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles