Table des matières
回复内容:
Maison développement back-end tutoriel 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$
Copier après la connexion
  • 不以空行结尾的文件统计行数会出错:
$ echo -n "Line not ending in a new line" | wc -l
0
$ echo "Line ending with a new line" | wc -l
1
Copier après la connexion

也有提到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>
Copier après la connexion

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

<code>last line of Afirst line of B
</code>
Copier après la connexion

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

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

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

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

[
 'string constant 1', 
 'string constant 2', 
 'string constant 3', 
]
Copier après la connexion

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

(1) # Integer 1
(1, ) # Tuple with only one element
Copier après la connexion

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

主要有两个理由:

  • 某些工具(特别是比较古老的),如果文件的末尾没有\n或\r,就会忽略最后一行。
  • 最后有一个空行,便于判断这个文件传输完整(而不是只传了一半
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

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

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles