我可以在PHP中使用散列符号(#)进行注释吗?

我从来没有见过使用散列( # )的PHP文件进行评论。 但今天我意识到我其实可以! 我假设有一个原因,为什么每个人都使用//而不是,所以我在这里。

除个人喜好外,是否有任何理由使用//而不是#来评论?

问题的答案在PHP中使用“#”和“//”进行单行注释有什么区别吗? 不是

没有区别。 通过查看PHP源代码的parsing部分, “#”和“//”由相同的代码处理 ,因此具有完全相同的行为。

PHP的文档描述了评论的不同可能性。 见http://www.php.net/manual/en/language.basic-syntax.comments.php

但是没有说“//”和“#”之间的区别。 所以不应该有技术上的差异。 PHP使用C语法,所以我认为这就是大多数程序员使用C风格注释“//”的原因。

 <?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

除个人喜好外,是否有任何理由使用//而不是#来评论?

我认为这只是个人喜好而已。 //#之间没有区别。 我个人使用#作为单行注释, //注释掉代码和/** */注释块。

 <?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'; ?> 

有人可能会认为 #forms的评论主要是为了使用熟悉的“shebang”(#!)符号来创build一个shell脚本。 在下面的脚本中,PHP应该忽略第一行,因为它也是注释。 例:

 #!/usr/bin/php <?php echo "Hello PHP\n"; 

如果您将其存储在可执行文件中,则可以像这样从terminal运行它

 ./hello 

输出是

 Hello PHP 

但是 ,这个推理是不正确的,正如下面的反例所示:

 #!/usr/bin/php #A <?php #B echo "Hello PHP\n"; 

第一行(shebang行)特别被翻译忽略。 PHP标签之前的注释行被回显到标准输出,因为它不在PHP标签内。 开始PHP标记之后的注释被解释为PHP代码,但是它被忽略,因为它是一个注释。

修订版的输出是

 #A Hello PHP 

如果您在团队/项目中build立了一些规则集,则可以使用这两种types的评论来概述评论代码的用途。

例如,我喜欢使用#来静音/禁用configuration设置,子function以及一些有用或重要的代码,但目前仅禁用。

带“#”的评论在PHP 5.3中被弃用。 所以总是使用//或/ /