2012-03-29 10 views
22

Wenn ich eine PHP-Datei zu Github begehen bekomme ich die Meldung "Keine Zeilenschaltung am Ende der Datei".PHP: Gibt es einen Grund, eine neue Zeile am Ende der Datei zu setzen

Es ist nur eine Warnung und ich erinnere mich, dass es aus irgendeinem Grund gut ist, eine neue Zeile am Ende einer Datei zu haben.

Aber warum? Ist es ein Rest von längst vergangenen Zeiten, hat es noch Vorteile oder ist es sogar in PHP erforderlich? Wenn ja, aus welchem ​​Grund?

+0

hat es nichts mit PHP zu tun. –

+0

Ist es eine * Warnung * oder einfach eine * Aussage * in der Diff-Ansicht? – deceze

+0

Nur eine Aussage, denke ich. Es ist gerade, als es mir wieder in den Sinn kam. Ich dachte, es gibt einen Grund, es in PHP zu machen. –

Antwort

15

Es ist nicht von PHP erforderlich, aber es kann Probleme mit einigen Diff-Tools verursachen. Die Warnung ist nur eine Warnung und kann auf Wunsch ignoriert werden, aber ich würde die folgende Konvention empfehlen und das letzte Zeichen als Zeilenumbruch haben.

+0

können Sie mir bitte ein Beispiel zeigen .... starrte auf Dasselbe Problem. –

5

Die Warnung soll Ihnen helfen, eine möglicherweise fehlerhafte, abgeschnittene Datei zu erkennen, unter der Annahme, dass eine Datei ohne Zeilenende am Ende verdächtig ist, wenn sie abgeschnitten wird.

Abgesehen davon ist der einzige Grund, Quelldateien ohne einen abschließenden Zeilenumbruch zu vermeiden, die Warnung zu vermeiden!

0

Dies ist ein PSR-2 convention, die besagt:

Alle PHP-Dateien enden muss mit einer einzigen Leerzeile.

Warum? Weil Dienstprogramme, die mit Dateien arbeiten sollen (wie die diff utility), mit Zeilen, die nicht mit einer Zeilenumbruch enden, nicht gut zurechtkommen; Dies ist, wie POSIX Zuständen in einem seiner rules:

3,206 Linie

Eine Sequenz von null oder mehr nicht-Zeichen plus ein Endzeichen.

Daher werden Zeilen, die nicht mit einem Zeilenumbruchzeichen enden, nicht als tatsächliche Zeilen betrachtet. Das bedeutet: Wenn Ihre letzte Zeile eine Codezeile (anstelle einer leeren Zeile) ist, wird sie möglicherweise von diesen Tools ignoriert und kann Ihr Programm unterbrechen.

Verwandte Themen