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

Best way to comment on if/else statement with PHP PSR-2

在我看来,示例 #2 似乎是更易读的评论方式。

但是如果我将 PSR-2 应用于两个样本,样本 #1 不会改变,但 样本 #2 的结果更改如下,这不是正确的评论。

在这些情况下最好的评论方式是什么?

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

结论 2017/12/13

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

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

PSR-2 没有解决如何有意发表评论或屏蔽评论,所以你可以随心所欲。

There are many elements of style and practice intentionally omitted by this guide. These include but are not limited to:

  • Declaration of global variables and global constants
  • Declaration of functions Operators and assignment
  • Inter-line alignment
  • Comments and documentation blocks
  • Class name prefixes and suffixes

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

然而,根据 PSR-2,左大括号应与 if() 条件由 space 字符分隔,并且 else 应在同一行并且在前面的右大括号旁边,像这样:

<?php
if ($expr1) {
    // if body
} elseif ($expr2) {
    // elseif body
} else {
    // else body;
}

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


恕我直言,你的评论是相对于 else 块内所做的事情是一个很好的理由,为什么它应该放在 inside 该块(仅功能, 类 和顶级构造有权在它们之上提取一个文档块),所以我倾向于同意 Ibu 在这方面的评论(如果你在某个时候编辑或删除 else 块,该块评论也应该更新)。

@Ibu 确实。正如@Calimero所说,它可能是这样的?

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