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

Hub*_*bro 136 php comments

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

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

Azi*_*ziz 155

问题的答案在PHP中使用"#"和"//"进行单行注释什么区别吗?没有.

没有区别.通过查看PHP源代码的解析部分,"#"和"//"都由相同的代码处理,因此具有完全相同的行为.

  • 在描述路线时,哈希是有用的,例如.`#/ news(代码在这里)`而不是`///news(代码在这里)`.至于2k LoC文件,我认为还有其他问题,而不是使用哪个评论标签:) (4认同)
  • **从 PHP 8 开始,情况不再是这样:“#”将始终是注释运算符,但序列“#[”现在标记“[属性](https://stitcher.io/blog /attributes-in-php-8)" 或注释。**(这非常酷。)这是一个非常小的更改(可以通过添加空格来解决,例如 `# [`),但意味着 `#`不能再被视为“忽略行尾的所有内容”。因此,也许不要在自动生成的代码中使用“#”。 (3认同)
  • 请注意,N ++(6.55)不能总是正确地折叠`#`注释.我注意到在大型PHP文件中:2k行或更多.有时它开始在多个#上折叠代码. (2认同)

nai*_*rch 11

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

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


ajr*_*eal 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
?>
Run Code Online (Sandbox Code Playgroud)

RTM


Sit*_*thu 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';
?>
Run Code Online (Sandbox Code Playgroud)


Bra*_*din 5

可能有人认为#注释的形式主要是为了使用熟悉的“ shebang”(#!)表示法制作一个shell脚本。在以下脚本中,PHP应该忽略第一行,因为它也是注释。例:

#!/usr/bin/php
<?php

echo "Hello PHP\n";
Run Code Online (Sandbox Code Playgroud)

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

./hello
Run Code Online (Sandbox Code Playgroud)

输出是

Hello PHP
Run Code Online (Sandbox Code Playgroud)

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

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

#B
echo "Hello PHP\n";
Run Code Online (Sandbox Code Playgroud)

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

修订版本的输出为

#A
Hello PHP
Run Code Online (Sandbox Code Playgroud)

  • 实际上,shebang在PHP代码之外,因此绝对不是对PHP的注释。尝试删除`!`,然后通过`php`命令行运行文件:它将显示“#/ usr / bin / php”。忽略shebang的原因是因为PHP在文件的开头就识别出shebang行并忽略它们。 (13认同)