Kann ich ein Hash-Zeichen (#) zum Kommentieren in PHP verwenden?
Lesezeit: 6 Minuten
Hubro
Ich habe noch nie eine PHP-Datei gesehen, die Hashes verwendet (#) zum Kommentieren. Aber heute habe ich gemerkt, dass ich es tatsächlich kann! Ich gehe davon aus, dass es einen Grund gibt, warum jeder verwendet // stattdessen aber, also bin ich hier.
Gibt es einen Grund, abgesehen von persönlichen Vorlieben, zu verwenden // statt # für Kommentare?
Das ist ein Hash (oder Pfund oder Quadrat, je nachdem, in welchem Land Sie sich befinden), kein Hash-Tag. Ein Hashtag ist ein Mittel, um Inhalte auf Twitter zu kategorisieren.
– QUentin
1. Februar 2012 um 9:43 Uhr
Sie könnten das HTML-Escape-Äquivalent # wenn Sie das #-Symbol in Ihrem Code benötigen
– dotoree
1. Februar 2012 um 9:53 Uhr
Ich dachte, die # Symbol wurde als Hashtag bezeichnet … 🙁 Kein Grund, so stark abzustimmen. Lektion gelernt
– Hubro
1. Februar 2012 um 10:35 Uhr
benutze ich gerne # für einzeilige Kommentare, // zum Auskommentieren von Code & /* ... */ für Kommentarblöcke
– Johannes Magnolie
15. November 2013 um 18:56 Uhr
Mögliches Duplikat von PHP-Kommentaren # vs //
– nawfal
18. Oktober 2015 um 1:51 Uhr
Aziz
AKTUALISIERUNG 2021: Ab PHP8, die beiden Zeichen sind nicht identisch. Die Sequenz #[ is used for Attributes.(Thanks to i336 for the comment)
Original Answer:
The answer to the question Is there any difference between using “#” and “//” for single-line comments in PHP? is no.
Note that N++ (6.55) can’t always fold # comments correctly. I noticed that in large PHP files: 2k lines or more. Sometimes it starts to fold code on multiple #.
– CoR
Apr 14, 2014 at 13:47
I much prefer # comments over // ones .. but I’ve always been wondering if # is PSR complient .. Is it ?
– Stphane
Aug 11, 2015 at 7:36
Hash is helpful when describing routes, eg. # /news (code here) instead of // /news (code here). As for 2k LoC files, I think there are other problems than which comment tag to use 🙂
– Juha Untinen
Apr 1, 2016 at 6:48
AS OF PHP 8 THIS IS NO LONGER THE CASE: # will always be a comment operator, but the sequence #[ now marks the start of an “attribute” or annotation. (Which are pretty cool.) It’s a very small change (and can be worked around by adding a space, like # [), but means # can no longer be treated as “ignore everything to end of line.” So maybe don’t use # in autogenerated code.
– i336_
Jan 1, 2021 at 12:27
Thank you, @i336_. I’ve updated the answer to reflect this update.
But it does not say anything about differences between “//” and “#”. So there should not be a technical difference. PHP uses C syntax, so I think that is the reason why most of the programmers are using the C-style comments ‘//’.
Or it uses perl syntax, in which case “#” makes its appearance. And perl gets its comment syntax from the unix-ey shells.
– Gerard ONeill
Jun 17, 2019 at 12:41
<?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
?>
Is there any reason, aside from personal preference, to use // rather than # for comments?
I think it is just a personal preference only. There is no difference between // and #. I personally use # for one-line comment, // for commenting out code and /** */ for block comment.
<?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';
?>
Brandin
One might think that the # form of commenting is primarily intended to make a shell script using the familiar “shebang” (#!) notation. In the following script, PHP should ignore the first line because it is also a comment. Example:
#!/usr/bin/php
<?php
echo "Hello PHP\n";
If you store it in an executable file you can then run it from a terminal like this
./hello
The output is
Hello PHP
However, this reasoning is incorrect, as the following counterexample shows:
#!/usr/bin/php
#A
<?php
#B
echo "Hello PHP\n";
The first line (the shebang line) is specially ignored by the interpreter. The comment line before the PHP tag is echoed to standard output because it is not inside a PHP tag. The comment after the opening PHP tag is interpreted as PHP code but it is ignored because it is a comment.
The output of the revised version is
#A
Hello PHP
Actually, the shebang is outside the PHP code, so it is absolutely not a comment for PHP. Try removing the !, and run the file through php command line: it will print “#/usr/bin/php”. The reason why the shebang is ignored is because PHP recognize shebang lines at the very begining of files and ignore them.
– Ninj
Feb 18, 2015 at 17:24
Using php7.4, both comments are echoed. So the sheband is not (or no longer) ignored at all.
– Chargnn
Jan 15, 2020 at 21:25
@Chargnn, just tested it, it works in PHP 7.4 as well. It shouldn’t depend on the PHP version, this comment means nothing to PHP, only to the shell. Shell sees this comment, reads it, then removes it and passes the rest to PHP. Maybe you weren’t running it in a unix shell or some weird shell that doesn’t support this?
– egst
Feb 25, 2021 at 13:47
If you establish some rule sets in your team / project… the 2 types of comments can be used to outline the purpose of the commented code.
For example I like to use # to mute / disable config settings, sub functions and in general a piece of code that is useful or important, but is just currently disabled.
Actually, the shebang is outside the PHP code, so it is absolutely not a comment for PHP. Try removing the !, and run the file through php command line: it will print “#/usr/bin/php”. The reason why the shebang is ignored is because PHP recognize shebang lines at the very begining of files and ignore them.
– Ninj
Feb 18, 2015 at 17:24
Using php7.4, both comments are echoed. So the sheband is not (or no longer) ignored at all.
– Chargnn
Jan 15, 2020 at 21:25
@Chargnn, just tested it, it works in PHP 7.4 as well. It shouldn’t depend on the PHP version, this comment means nothing to PHP, only to the shell. Shell sees this comment, reads it, then removes it and passes the rest to PHP. Maybe you weren’t running it in a unix shell or some weird shell that doesn’t support this?
– egst
Feb 25, 2021 at 13:47
Community
There’s no official PSR for that.
However, in all PSR example code, they use // for inline comments.
// is more commonly used in the PHP culture, but it’s fine to use # too. I personally like it, for being shorter and saving bytes. It’s personal taste and biased, there’s no right answer for it, until, of course, it becomes a standard, which is something we should try to follow as much as possible.
The problem with standards in the Computer Science realm is that to make a standard, you have to have the best option, and in Computer Science there is no such thing as the best option. There are only wrong options, and better options. But “best option” does not exist.
– user2607743
Apr 12, 2020 at 0:43
13605000cookie-checkKann ich ein Hash-Zeichen (#) zum Kommentieren in PHP verwenden?yes
Das ist ein Hash (oder Pfund oder Quadrat, je nachdem, in welchem Land Sie sich befinden), kein Hash-Tag. Ein Hashtag ist ein Mittel, um Inhalte auf Twitter zu kategorisieren.
– QUentin
1. Februar 2012 um 9:43 Uhr
Sie könnten das HTML-Escape-Äquivalent # wenn Sie das #-Symbol in Ihrem Code benötigen
– dotoree
1. Februar 2012 um 9:53 Uhr
Ich dachte, die
#
Symbol wurde als Hashtag bezeichnet … 🙁 Kein Grund, so stark abzustimmen. Lektion gelernt– Hubro
1. Februar 2012 um 10:35 Uhr
benutze ich gerne
#
für einzeilige Kommentare,//
zum Auskommentieren von Code &/* ... */
für Kommentarblöcke– Johannes Magnolie
15. November 2013 um 18:56 Uhr
Mögliches Duplikat von PHP-Kommentaren # vs //
– nawfal
18. Oktober 2015 um 1:51 Uhr