Kann ich ein Hash-Zeichen (#) zum Kommentieren in PHP verwenden?


144

Ich habe noch nie eine PHP-Datei gesehen, in der hashes ( #) zum Kommentieren verwendet wurde. Aber heute habe ich gemerkt, dass ich es tatsächlich kann! Ich gehe davon aus, dass es einen Grund gibt, warum jeder //stattdessen verwendet , also bin ich hier.

Gibt es außer den persönlichen Vorlieben einen Grund, diese //eher als #für Kommentare zu verwenden?


16
Das ist ein Hash (oder Pfund oder Quadrat, je nachdem in welchem ​​Land Sie sich befinden), kein Hash-Tag. Ein Hashtag ist ein Mittel zum Kategorisieren von Inhalten auf Twitter.
Quentin

Sie können das HTML-Escape-Äquivalent & # 35; Wenn Sie das Symbol # in Ihrem Code
benötigen

22
Ich dachte, das #Symbol würde als Hash-Tag bezeichnet ... :( Kein Grund, so stark abzustimmen. Lektion gelernt
Hubro

3
Ich verwende es gerne #für einzeilige Kommentare, //zum Auskommentieren von Code und /* ... */für Kommentarblöcke
John Magnolia

Mögliches Duplikat von PHP-Kommentaren # vs //
nawfal

Antworten:


163

Die Antwort auf die Frage Gibt es einen Unterschied zwischen der Verwendung von "#" und "//" für einzeilige Kommentare in PHP? ist nein .

Es gibt keinen Unterschied. Wenn Sie sich den Parsing-Teil des PHP-Quellcodes ansehen, werden sowohl "#" als auch "//" von demselben Code behandelt und haben daher genau dasselbe Verhalten.


3
Beachten Sie, dass N ++ (6.55) #Kommentare nicht immer richtig falten kann. Mir ist aufgefallen, dass in großen PHP-Dateien: 2k Zeilen oder mehr. Manchmal fängt es an, Code auf mehreren # zu falten.
AdR

1
Ich bevorzuge #Kommentare gegenüber Kommentaren //. Aber ich habe mich immer gefragt, ob #PSR-konform ist. Ist es das?
Stphane

5
Hash ist hilfreich bei der Beschreibung von Routen, z. # /news (code here)statt // /news (code here). Was 2k LoC-Dateien
betrifft

11

Die PHP-Dokumentation beschreibt die verschiedenen Möglichkeiten von Kommentaren. Siehe http://www.php.net/manual/en/language.basic-syntax.comments.php

Es sagt jedoch nichts über Unterschiede zwischen "//" und "#" aus. Es sollte also keinen technischen Unterschied geben. PHP verwendet die C-Syntax, daher denke ich, dass dies der Grund ist, warum die meisten Programmierer die C-Kommentare '//' verwenden.


1
Oder es wird die Perl-Syntax verwendet. In diesem Fall wird "#" angezeigt. Und Perl erhält seine Kommentarsyntax von den Unix-Ey-Shells.
Gerard ONeill

7
<?php
    echo 'This is a test'; // This is a one-line C++ style comment
    /* This is a multi-line comment.
       Yet another line of comment. */
    echo 'This is yet another test.';
    echo 'One Final Test'; # This is a one-line shell-style comment
?>

RTM


// ist ein Kommentar im C-Stil
Blue Water

6

Gibt es außer den persönlichen Vorlieben einen Grund, // anstelle von # für Kommentare zu verwenden?

Ich denke, es ist nur eine persönliche Präferenz. Es gibt keinen Unterschied zwischen //und #. Ich persönlich verwende es #für einzeilige Kommentare, //zum Auskommentieren von Code und /** */für Blockkommentare.

<?php
    # This is a one-line comment
    echo 'This is a test';

    // echo 'This is yet another test'; // commenting code

    /** 
     * This is a block comment
     * with multi-lines 
     */
    echo 'One final test';
?>

Ich verwende es gerne //für reguläre Codekommentare, da dies die meisten Leute beim Auskommentieren von Code verwenden. Und ich verwende #für Kommentare, die beschreiben sollen, anstatt Code zu sein, der auskommentiert wird. Das Vermeiden /**/für einen Liner reduziert das Öffnen / Schließen von Konflikten, wenn Sie versuchen, /**/Code zu verwenden, der `/ ** / in diesem Code enthält ... Sie erhalten vorzeitiges Schließen. und das ist schlecht.
Ahnbizcad

5

Man könnte denken, dass die #Form des Kommentierens in erster Linie dazu gedacht ist, ein Shell-Skript mit der bekannten "shebang" -Notation (#!) Zu erstellen. Im folgenden Skript sollte PHP die erste Zeile ignorieren, da es sich auch um einen Kommentar handelt. Beispiel:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Wenn Sie es in einer ausführbaren Datei speichern, können Sie es von einem Terminal wie diesem ausführen

./hello

Die Ausgabe ist

Hello PHP

Diese Argumentation ist jedoch falsch, wie das folgende Gegenbeispiel zeigt:

#!/usr/bin/php
#A
<?php

#B
echo "Hello PHP\n";

Die erste Zeile (die Shebang-Zeile) wird vom Interpreter besonders ignoriert. Die Kommentarzeile vor dem PHP-Tag wird in die Standardausgabe übernommen, da sie sich nicht in einem PHP-Tag befindet. Der Kommentar nach dem öffnenden PHP-Tag wird als PHP-Code interpretiert, jedoch ignoriert, da es sich um einen Kommentar handelt.

Die Ausgabe der überarbeiteten Version ist

#A
Hello PHP

13
Eigentlich ist der Shebang außerhalb des PHP-Codes, also ist es absolut kein Kommentar für PHP . Versuchen Sie, die !Datei zu entfernen , und führen Sie die Datei über die phpBefehlszeile aus: Es wird "# / usr / bin / php" ausgegeben. Der Grund, warum der Shebang ignoriert wird, ist, dass PHP Shebang-Zeilen am Anfang von Dateien erkennt und ignoriert.
Ninj

Mit php7.4 werden beide Kommentare wiedergegeben. Die Sheband wird also überhaupt nicht (oder nicht mehr) ignoriert.
Chargnn

0

Wenn Sie in Ihrem Team / Projekt einige Regelsätze einrichten ... können die beiden Arten von Kommentaren verwendet werden, um den Zweck des kommentierten Codes zu skizzieren.

Zum Beispiel möchte ich #Konfigurationseinstellungen, Unterfunktionen und im Allgemeinen einen Code stummschalten / deaktivieren, der nützlich oder wichtig ist, aber gerade deaktiviert ist.


Ich mache gerne das Gegenteil, aber im Wesentlichen das Gleiche im Geiste. Verwenden Sie einen für Codekommentare und den anderen für Beschreibungskommentare.
Ahnbizcad

@ahnbizcad es ist besser, Kommentarblöcke für die Beschreibung zu verwenden / ** * * /
d.raev

Warum. ---- / - / - / - / -
ahnbizcad

0

Dafür gibt es keine offizielle PSR.

In allen PSR-Beispielcodes werden sie jedoch //für Inline-Kommentare verwendet.

Es gibt einen PSR-2-Erweiterungsvorschlag, der darauf abzielt, ihn zu standardisieren, der jedoch nicht offiziell ist: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding- style-guide-additions.md # Kommentar-Code

//wird häufiger in der PHP-Kultur verwendet, ist aber auch in Ordnung #. Ich persönlich mag es, weil es kürzer ist und Bytes spart. Es ist persönlicher Geschmack und voreingenommen, es gibt keine richtige Antwort darauf, bis es natürlich zum Standard wird, dem wir so weit wie möglich folgen sollten.


Das Problem mit Standards in der Informatik ist, dass man die beste Option haben muss, um einen Standard zu erstellen, und in der Informatik gibt es keine beste Option. Es gibt nur falsche und bessere Optionen. Aber "beste Option" gibt es nicht.
Blaues Wasser

0

Ja, es gibt jedoch plattformübergreifende Unterschiede.

Ich benutze # die ganze Zeit zum Kommentieren in PHP, aber ich habe einen Adoptionsunterschied festgestellt.

Auf der Windows-Tastatur ist die Taste # einfach zu bedienen. Auf der Mac-Tastatur ist die Taste # meistens nicht vorhanden.

Für Mac-Benutzer ist [Alt] + [3] oder [⌥] + [3] schwieriger einzugeben als //, sodass // eine plattformübergreifende Methode zum Anzeigen von Code mit Kommentaren geworden ist.

Das ist meine Beobachtung.


0

Von https://php.net/manual/en/migration53.deprecated.php

"Veraltete Funktionen in PHP 5.3.x ... Kommentare, die mit '#' beginnen, sind jetzt in INI-Dateien veraltet."

Hier hast du es. Hash '#' scheint standardmäßig als Kommentaroption zu bleiben, da es nicht veraltet ist. Ich plane, es zu verwenden, um verschiedene Ebenen verschachtelter if / else-Anweisungen zu unterscheiden und ihre schließenden Klammern zu markieren, oder um Codekommentare von auskommentiertem Code zu unterscheiden, wie andere in verwandten Beiträgen vorgeschlagen haben. (Hinweis: Der Link war gültig / funktionierte ab dem 23.04.19, obwohl wer weiß, ob er beim Lesen noch funktioniert.)


0

Gibt es außer den persönlichen Vorlieben einen Grund, // anstelle von # für Kommentare zu verwenden?

Ich bin selbst hierher gekommen, um die Antwort zu erhalten, und es ist gut zu wissen, dass es KEINEN Codeunterschied gibt.

In Bezug auf die Präferenzen könnte man jedoch argumentieren, dass Sie die Kommentarkonsistenz von 'shell-> perl-> php' gegenüber der von 'c-> php' bevorzugen würden.

Da ich mich PHP als Webby-Perl eines armen Mannes näherte, benutzte ich # .. und dann sah ich den Code eines anderen und kam direkt zu SO. ;)


-8

Kommentare mit "#" sind in PHP 5.3 veraltet. Verwenden Sie also immer // oder / ... /


21
Sie sind nur in INI-Dateien veraltet .
DisgruntledGoat

@DisgruntledGoat Verweis auf offizielle Dokumentation?
Wilt

1
Direkt von php.net: Kommentare, die mit '#' beginnen, sind in INI-Dateien jetzt veraltet.
Wilt

4
Andre, vielleicht ist es Zeit, diese Antwort zu löschen.
Jose Manuel Abarca Rodríguez

1
weniger Forschung! machen Sie Verlust :), aber das hilft mir auch zu wissen, dass # in INI-Dateien veraltet ist
Abdul Manan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.