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

时间:2017-10-15 06:45:41

标签: php comments psr-2

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

但如果我将PSR-2应用于两个样本,样本#1 不会发生变化,但样本#2 的结果会发生如下变化,而且&#&# 39;不是一个恰当的评论。

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

样品#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
}

2 个答案:

答案 0 :(得分: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;
}

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

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

答案 1 :(得分:1)

@Ibu确实。至于@Calimero说,它可能是这样的吗?

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