我从未见过使用哈希(#)进行评论的PHP文件.但是今天我意识到我其实可以!我假设有一个原因,为什么每个人都使用//,所以我在这里.
除个人偏好外,是否有任何理由使用//而不是#评论?
Azi*_*ziz 155
问题的答案在PHP中使用"#"和"//"进行单行注释有什么区别吗?是没有.
没有区别.通过查看PHP源代码的解析部分,"#"和"//"都由相同的代码处理,因此具有完全相同的行为.
nai*_*rch 11
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
?>
Run Code Online (Sandbox Code Playgroud)
除个人偏好外,是否有任何理由使用//而不是#作为评论?
我认为这只是个人偏好.//和之间没有区别#.我个人#用于一行评论,//用于评论代码和/** */块注释.
<?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)
可能有人认为#注释的形式主要是为了使用熟悉的“ 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)