在我看来,示例#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
}
到目前为止,最好的方法似乎如下: 在括号内标记
if ($useCache == true){
/* Read cached data */
// do something
}
else {
/* Download and cache data */
// do something
}
答案 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
}