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

时间:2012-02-01 09:41:27

标签: php comments

我从未见过使用哈希(#)进行评论的PHP文件。但是今天我意识到我其实可以!我假设每个人都使用//的原因,所以我在这里。

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

11 个答案:

答案 0 :(得分:150)

问题的答案对于PHP中的单行注释使用“#”和“//”之间是否存在任何差异 no < /强>

没有区别。通过查看PHP源代码的解析部分both "#" and "//" are handled by the same code,因此具有完全相同的行为。

答案 1 :(得分:10)

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

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

答案 2 :(得分: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

答案 3 :(得分:6)

  

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

我认为这只是个人偏好。 //#之间没有区别。我个人使用#进行单行评论,//用于评论代码,/** */用于评论。

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

答案 4 :(得分:5)

有人可能认为 #形式的评论主要是为了使用熟悉的&#34; shebang&#34; (#!)表示法。在以下脚本中,PHP应忽略第一行,因为它也是注释。例如:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

如果将其存储在可执行文件中,则可以从这样的终端

运行它
./hello

输出

Hello PHP

然而,这种推理是不正确的,如下面的反例所示:

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

#B
echo "Hello PHP\n";

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

修订版的输出是

#A
Hello PHP

答案 5 :(得分:0)

如果您在团队/项目中建立了一些规则集......可以使用两种类型的注释来概述注释代码的用途。

例如,我喜欢使用#来静音/禁用配置设置,子功能以及一般有用或重要的代码,但目前只是禁用。

答案 6 :(得分:0)

没有官方的PSR。

但是,在所有PSR示例代码中,他们都使用//进行内联注释。

有一个旨在对其进行标准化的PSR-2扩展提案,但它不是官方的:https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding-style-guide-additions.md#commenting-code

//在PHP文化中更常用,但是也可以使用#。我个人喜欢它,因为它更短并节省了字节。这是个人的品味和偏见,没有正确的答案,直到它成为标准为止,这是我们应该尽可能遵循的标准。

答案 7 :(得分:0)

是的,但是存在跨平台差异。

我一直使用#来在PHP中进行注释,但是我注意到采用上的差异。

在Windows键盘上,#键易于使用。 在Mac键盘上,#键大多不存在。

因此对于Mac用户,[Alt] + [3]或[⌥] + [3]比//更加难以键入,因此//已成为显示带有注释的代码的跨平台方式。

这是我的观察。

答案 8 :(得分:0)

来自https://php.net/manual/en/migration53.deprecated.php

“ PHP 5.3.x中已弃用的功能.... INI文件中已弃用以#号开头的注释。”

那里有。默认情况下,不建议使用不包含哈希值“#”的注释选项。我打算用它来区分嵌套的if / else语句的各个层并标记其右括号,或者像其他人在相关文章中所建议的那样,将代码注释与注释掉的代码区分开。 (注意:自19年4月23日起,链接有效/有效,尽管在您阅读本文时谁知道链接是否仍将正常工作。)

答案 9 :(得分:0)

  

除了个人喜好之外,是否还有其他理由使用//   比#要发表评论?

我自己来这里回答的,很高兴知道的代码差异。

但是,明智的选择可能会导致您更喜欢'shell-> perl-> php'注释一致性而不是'c-> php'方式。

因为我确实将php作为穷人的webby perl来对待,所以我使用#..然后我看到了别人的代码,直接进入SO。 ;)

答案 10 :(得分:-6)

使用PHP 5.3弃用了带有“#”的注释。所以总是使用//或/ ... /