4

在我看来,示例 #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
}
4

2 回答 2

9

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;
}

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


恕我直言,您的评论与块内所做的事情相关,这else是一个很好的理由,为什么它应该放在块内(只有函数、类和顶级构造有权在它们上面提取一个 docblock),所以我在这方面倾向于同意 Ibu 的评论(如果您要在某个时候编辑或删除 else 块,也应该更新块评论)。

于 2017-10-15T07:02:25.507 回答
1

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

if ($useCache == true){
    /* Read cached data */
    // do something
} else {
    /* Download and cache data */
    // do something
}
于 2017-10-15T10:02:25.017 回答