用PHP PSR-2评论if/else语句的最佳方法

KEI*_*NOS 1 php comments psr-2

在我看来,样本#2似乎是更易读的评论方式.

但是,如果我将PSR-2应用于两个样本,样本#1将不会改变,但样本#2的结果将如下变化,并且它不是正确的评论.

在这些案例中评论的最佳方式是什么?

样品#1
/* Read cached data */
if ($useCache == true){
    // do something
/* Download and cache data */
} else {
    // do something
}
Run Code Online (Sandbox Code Playgroud) 样品#2
/* Read cached data */
if ($useCache == true){
    // do something
}
/* Download and cache data */
else {
    // do something
}
Run Code Online (Sandbox Code Playgroud) 样品#2的PSR-2结果
/* Read cached data */
if ($useCache == true){
    // do something
} /* Download and cache data */
else {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

结论2017/12/13

到目前为止,最好的方法似乎如下:在括号内标记它们

if ($useCache == true){
    /* Read cached data */
    // do something
}
else {
    /* Download and cache data */
    // do something
}
Run Code Online (Sandbox Code Playgroud)

Cal*_*ero 7

PSR-2没有说明如何发表评论或阻止评论,所以你可以随意做.

本指南有意省略了许多风格和实践元素.这些包括但不限于:

  • 全局变量和全局常量的声明
  • 函数声明操作符和赋值
  • 线间对齐
  • 评论和文档块
  • 类名前缀和后缀

参考:http://www.php-fig.org/psr/psr-2/#conclusion

但是,根据PSR-2,开口支撑应该用if()空格字符与条件分开,并且else应该在同一条线上并且在前面的右括号旁边,如下所示:

<?php
if ($expr1) {
    // if body
} elseif ($expr2) {
    // elseif body
} else {
    // else body;
}
Run Code Online (Sandbox Code Playgroud)

参考:http://www.php-fig.org/psr/psr-2/#51-if-elseif-else


Imho,你的评论与else块中的内容相关是一个很好的理由,为什么它应该放在那个块里面(只有函数,类和顶级结构有权在它们上面提取docblock),所以我在这方面倾向于同意Ibu的评论(如果你在某个时候编辑或删除了else块,那么块注释也应该更新).