使用if(count())的清晰度

时间:2011-05-31 11:55:44

标签: php coding-style

在此代码片段中:

$results = $this->getAdapter()->fetchAll($query);

if(count($results)) {
    // …
}

...你认为if(count())部分是一个很好理解的习语,还是令人困惑的代码。即应该是

if(count($results) > 0)

???

5 个答案:

答案 0 :(得分:2)

使用带有'if'的布尔表达式比使用隐式转换需要更少的语言理解,因此我总是更喜欢第二个选项(添加“> 0”) - 至少如果此代码是由其他人也是。你永远不知道谁将维护你的代码。关键字是“清晰度”。

但我必须承认,如果我自己也使用了一个int表达式,我已经多次写过代码,因为我喜欢它的优雅。

答案 1 :(得分:1)

他们在这种情况下完成了同样的工作,并且易于阅读。

我只是添加(以防万一)如果您只对if(count())执行此查询,那么您应该发出SELECT COUNT(*)代替!

答案 2 :(得分:1)

count和无关的>比较毫无意义。如果你收到一个实际的array,那么测试应该是:

 if ($results) {

这就是脚本语言的用途。提取低级细节。

如果你的fetchAll函数返回一个ArrayObject或类似函数,你只需要count。如果您的函数有时会返回false,那么您的if (count(将失败(因为PHP中的count(false)==1)。

答案 3 :(得分:0)

嗯...不确定这个问题的目的是什么 - 但对于理解PHP的人来说,语义应该是不言而喻的

答案 4 :(得分:0)

我的意见是> 0检查是多余的,没有必要。

我知道其他开发人员坚持认为它应该是为了清晰,但坦率地说我不能解释为什么 - 任何能够阅读PHP的人都应该能够辨别出它们是相同的。